题目链接:http://codeforces.com/contest/792/problem/B
题意:就是模拟一个约瑟夫环
解法:数据小,数组标记模拟,大一点可以写链表
//CF 792B
#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
int n, k, pos[maxn], vis[maxn];
int main()
{
scanf("%d%d", &n, &k);
for(int i = 1; i <= n; i++) pos[i] = i, vis[i] = 0;
int curpos = 1;
for(int i = 1; i <= k; i++){
int x;
scanf("%d", &x);
int sz = 0;
for(int j = 1; j <= n; j++){
if(!vis[j]){
sz++;
}
}
x %= sz;
if(x == 0) x = sz;
int poss;
for(int j = curpos + 1; j <= n && x; j++){
if(!vis[j]) x--;
if(x == 0){
poss = j;
break;
}
}
for(int j = 1; j <= curpos && x; j++){
if(!vis[j]) x--;
if(x == 0){
poss = j;
break;
}
}
vis[poss] = 1;
printf("%d ", poss);
int flag = 0;
for(int j = poss; j <= n; j++){
if(!vis[j]){
curpos = j;
flag = 1;
break;
}
}
if(flag == 0)
for(int j = 1; j < poss; j++){
if(!vis[j]){
curpos = j;
break;
}
}
//printf("%d ", curpos);
}
return 0;
}