问题描述
小 X 喜欢玩游戏。 这天,小 X 觉得传统的游戏都玩腻了,自己随手在草稿纸上画了一
行 N 个格子作为棋盘, 制定了如下规则:格子从左到右依次编号为 1 到 N,玩家初始位于格子 1,初始前进方向为 向右,游戏共进行 M 轮,第 i 轮玩家前进 Ai 格,若玩家到达格子 N 则改变前进方向为向左, 若玩家到达格子 1 则改变前进方向为向右。
小 X 想知道玩家最后会停在哪个格子,但这个游戏太漫长了,他已经玩得快睡着了,希望你帮帮他。
输入格式
第一行包含用一个空格隔开的两个整数 N,M。
接下来 M 行,第 i 行包含一个整数 Ai。
输出格式
第一行包含一个整数,表示玩家最后停留的格子编号。
样例输入
3 2
2
3
样例输出
2
样例说明
玩家的路线为 1->2->3->2->1->2。
数据范围
对于 30%的数据,N=2,M≤10,Ai=1。
对于 60%的数据,N≤1000,M≤1000,Ai≤1000。
对于 100%的数据,2≤N≤100000,1≤M≤100000,1≤Ai≤1000000000。
#include<iostream>
#include<cstdio>
using namespace std;
long long int a[11];
int main() {
long long int n,m,k;
long long int sum=0;
cin>>n>>m;
for(int i=1; i<=m; i++) {
scanf("%lld",&a[i]);
sum+=a[i];
}
if(sum/(n-1)%2!=0)
k=n-sum%(n-1);
else
k=sum%(n-1)+1;
cout<<k;
return 0;
}