真正的夏天,从清晨7点就开始空气就变得燥热,窗外蝉在叫。多多躺在床上,直
勾勾地望着有些陌生的天花板,回忆着刚才的噩梦。
在梦里,多多- 个人在玩飞行棋,还剩一个棋子没到终点,距离终点还有K个格
子。之后多多投了N次骰子,多多清楚地记得每次投出的骰子点数是多少。但第
N次骰子投出之后多多就从梦中醒来,不记得最终自己棋子是否到达终点。现在
多多一 直在回想最终自己到达终点.....
输入描述:
输入共2行。
第一行是2个整数K,N,分别表示棋子最终到终点的距离以及之后投掷的骰子次数。其中0<=K<=600,1<=N<=100。
第二行包含N个整数,其中第i (1 <= i<= N)个整数Di(1<=Di <= 6)表示第i次投出的骰子点数。
输出描述:
输出共1行,请注意行首、行尾不要输出多余的空格。
若在第N次骰子之前就已经到达终点,则输出字符串"paradox" 。
否则输出2个整数:最终棋子的位置(到终点的距离) , 以及共回退了多少次。
2个整数之间以单个空格隔开。
示例1 输入输出示例仅供调试,后台判题数据般不包含示例
输入
102
53
输出
复制
10
说明
2次共前进6+3=9格;
示例2输入输出示例仅供调试,后台判题数据一 般不包含示例
输入
复制
10 4
6333
#include<bits/stdc++.h>
using namespace std;
int main(){
int m, n;
cin>> m >> n;
vector<int> num(n);
for(int i = 0; i< n;++i){
int tmp;
cin>> tmp;
num[i] = tmp;
}
if(m == 0) {
cout<< "paradox";
return 0;
}
int cnt = 0;
for(int i = 0;i < n; ++i){
if(num[i] == m) {
cout<< "paradox";
return 0;
}
else if(num[i] < m){
m = m - num[i];
}
else{
m = num[i] - m;
++cnt;
}
}
if(m == 0) {
cout<< "paradox";
}else{
cout<<m <<" "<<cnt;
}
return 0;
}