/***************
Problem from :ds
Problem describe :
数组模拟链表
假设 a[] = 1 2 3 4 5
输入 4 2 2 1 0
输出
4 -> 链表的第五个元素 5 (删除掉5 此时链表 1 - 2 - 3 - 4)
2 -> 链表的第三个元素 3 (删除掉3 此时链表 1 - 2 - 4)
2 -> 链表的第三个元素 4 (删除掉4 此时链表 1 - 2 )
1 -> 链表的第二个元素 2 (删除掉2 此时链表 1 )
0 -> 链表的第一个元素 1 (删除掉1 此时链表 null )
data:2016.12.1
****************/
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<map>
#include<stack>
#include<queue>
#include<ctime>
#include<cstring>
#include<vector>
#include<string>
#define ll __int64
#define inf 0x3f3f3f3f3f
using namespace std;
int num[505][2];
void init(int n)
{
num[0][1]=1;//作为表头
for(int i=1; i<=n; i++) num[i][0]=i, num[i][1]=i+1; //num[i][0]记录i num[i][1]记录连接的下一个数
num[n][1]=0;
return ;
}
int main()
{
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
int i, x, n;
while(~scanf("%d", &n))
{
init(n);
for(i=0; i<n; i++)
{
scanf("%d", &x);
if(i) printf(" ");
int k=num[0][1], pre=0;//pre记录前一个结点 用于删除操作
while(x--)
{
pre=k;
k = num[k][1];
}
printf("%d", num[k][0]);
num[pre][1] = num[k][1]; // 1 - 2 - 3 比如删除2 则 num[1][1] = num[2][1] = 3 => 1 - 3
}
printf("\n");
}
return 0;
}