Pagini recente » Cod sursa (job #444561) | Cod sursa (job #2851342) | Cod sursa (job #846050) | Cod sursa (job #1129128) | Cod sursa (job #80689)
Cod sursa(job #80689)
using namespace std;
#include <cstdio>
#include <cmath>
#include <deque>
#define maxn 30001
deque<short int>x[300];
short len[300];
int n;
void read()
{
freopen("schi.in","r",stdin);
scanf("%d\n", &n);
int i;
int T=(int)sqrt(n)+1;
int p, poz, r,aux;
for(i=1;i<=n;++i)
{
scanf("%d", &p);
--p;
poz=p/T;
r=p%T;
// printf("%d\n", r);
if(x[poz].size()==0 ) x[poz].push_back(i);
//else if(r==0) x[poz].push_front(i);
else x[poz].insert(x[poz].begin()+r, (short)i);
// printf("da\n");
// for(int j=0;j<x[poz].size();++j)printf("%d ", x[poz][j]);
// printf("\n");
while(x[poz].size()>T)
{
aux=x[poz][x[poz].size()-1];
x[poz].pop_back();
x[poz+1].push_front(aux);
++poz;
}
//for(int j=0;j<x[p/T].size();++j)printf("%d ", x[p/T][j]);
//printf("\n");
/*
for(int j=0;j<300;++j)
if(x[j].size())
for(int k=0;k<x[j].size();++k)printf("%d ", x[j][k]);
printf("\n\n");
*/ }
}
int main()
{
read();
freopen("schi.out","w",stdout);
// printf("\n\n");
int i, j;
for(i=0;i<300;++i)
if(x[i].size())
for(j=0;j<x[i].size();++j)printf("%d\n", x[i][j]);
return 0;
}