记录下秋招一路的磕磕绊绊~许愿一个心仪的offer~~
拼多多 算法工程师
1、飞行棋,还剩下一个棋子没到终点,距离终点还有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个整数之间以单个空格隔开。
输入: 输入:
10 4 10 4
6 3 6 3 3 3
输出: 输出:
1 0 1 2
说明:2次共前进6+3=9格
#include<iostream>
#include<vector>
using namespace std;
vector<int>count(vector<int>path, int target)
{
vector<int>res(2,0);
for (int i = 0; i < path.size(); i++)
{
if (res[0] + path[i]>target)
res[1] += 1;
else
{
res[0] += path[i];
if (res[0] == target)
{
if (i == path.size())
cout << 0;
else
cout << "paradox";
res[0] = -1;
break;
}
}
}
res[0] = target - res[0];
return res;
}
int main()
{
int k, n;
cin >> k >> n;
vector<int>path(n,0);
vector<int>result;
for (i