Pagini recente » Cod sursa (job #1967588) | Cod sursa (job #136885) | Cod sursa (job #2775206) | Cod sursa (job #1885909) | Cod sursa (job #829932)
Cod sursa(job #829932)
#include<cstdio>
#define MX 33005
#define MMX (1<<15)
int t[MX];
void u (int i,int v)
{
while(i<MX)
t[i]+=v,i+=(i&-i);
}
int n;
int s (int x)
{
int ret=0, cur=0;
for(int i=MMX;i;i/=2)
if(t[ret+i]+cur<x)
ret+=i,cur+=t[ret];
return ret;
}
int main (void)
{
freopen ("order.in","r",stdin);
#ifdef INFOARENA
freopen ("order.out","w",stdout);
#endif
scanf ("%d",&n);
for(int i=1;i<=n;i++)
u (i,1);
printf ("2");
int p=2;
int l=2;
for(int i=1;i<n;i++){
u (p,-1);
l=(l+i)%(n-i);
if(!l)
l=n-i;
p=s (l)+1;
printf (" %d",p);
}
return 0;
}