拼多多笔试 飞行棋

真正的夏天,从清晨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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱桃木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值