Cod sursa(job #490844)
Utilizator | Udrescu Cristian udrescu_cristi | Data | 8 octombrie 2010 13:47:16 |
---|---|---|---|
Problema | Order | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
#define nmax 30001
short int n,i,k,a[nmax],poz,k1;
void refac(int k)
{
if(k==0)
{
printf("%d ",a[n]);
n--;
poz=0;
}
else
{
printf("%d ",a[k]);
for(int i=k;i<n;i++)
a[i]=a[i+1];
n--;
poz--;
}
}
int main()
{
freopen("order.in","r",stdin);
freopen("order.out","w",stdout);
scanf("%d\n",&n);
for(i=1;i<=n;i++)
a[i]=i;
poz=1;
k1=0;
while(n>1)
{
k1++;
poz=(poz+k1)%n;
refac(poz);
}
printf("%d ",a[1]);
return 0;
}