nn 个小朋友围成一圈,玩数数游戏。
小朋友们按顺时针顺序,依次编号为 1∼n1∼n。
初始时,11 号小朋友被指定为领头人。
游戏一共会行进 kk 轮。
在第 ii 轮中,领头人会从他的顺时针方向的下一个人开始,按顺时针顺序数 aiai 个人。
其中,最后一个被领头人数到的人被淘汰出局,这也意味着该轮游戏结束。
出局者的顺时针方向的下一个人被指定为新领头人,引领新一轮游戏。
例如,假设当游戏即将开始第 ii 轮时,还剩下 55 个小朋友,编号按顺时针顺序依次为 8,10,13,14,168,10,13,14,16,并且当前领头人为 1313 号小朋友,ai=12ai=12,则第 ii 轮游戏结束后,最后一个被数到的小朋友为 1616 号小朋友,他将被淘汰出局,并且处于其下一位的第 88 号小朋友将被指定为新领头人。
现在,请你求出每一轮次被淘汰的小朋友的编号。
输入格式
第一行包含两个整数 n,kn,k。
第二行包含 kk 个整数 a1,a2,…,aka1,a2,…,ak。
输出格式
一行,kk 个整数,其中第 ii 个整数表示在第 ii 轮中被淘汰的小朋友的编号。
数据范围
前三个测试点满足 2≤n≤102≤n≤10。
所有测试点满足 2≤n≤1002≤n≤100,1≤k≤n−11≤k≤n−1,1≤ai≤1091≤ai≤109。
输入样例1:
7 5
10 4 11 4 1
输出样例1:
4 2 5 6 1
输入样例2:
3 2
2 5
输出样例2:
3 2
#include <bits/stdc++.h>
using namespace std;
int n,k,flag[1100],m,t=1;
int main(){
cin>>n>>k;
for(int i=1;i<=k;i++){
cin>>m;
m%=n-i+1;
while(m--){
if(t==n) t=1;
else t++;
if(flag[t]==1) m++;
}
flag[t]=1;
cout<<t<<" ";
while(flag[t]==1)
t==n?t=1:t++;
}
return 0;
}