Cod sursa(job #2096861)
Utilizator | Data | 29 decembrie 2017 22:55:49 | |
---|---|---|---|
Problema | Order | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <stdio.h>
#include <stdlib.h>
int next[30001],next_inv[30001];
int main()
{
int i,j,n,z,k;
freopen("order.in","r",stdin);
freopen("order.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; i++)
{
next[i]=i%n+1;
next_inv[i]=(i==1?n:i-1);
}
z=1;
for(i=1,j=n; i<=n; i++,j--)
{
k=i%j;
while(k>1)
{
z=next[z];
k--;
}
if(k==0)
z=next_inv[i];
printf("%d ",next[z]);
next[z]=next[next[z]];
next_inv[next[z]]=z;
}
return 0;
}