Pagini recente » Cod sursa (job #1372428) | Cod sursa (job #1931486) | Cod sursa (job #2963437) | Cod sursa (job #2868495) | Cod sursa (job #1549652)
#include<cstdio>
#include<set>
using namespace std;
set<int> s;
set<int>::iterator it,urm,it1;
int n,q,dif,i,pp,h=1;
int main ()
{
freopen("order.in","r",stdin);
freopen("order.out","w",stdout);
scanf("%d",&n);
printf("2 ");
s.insert(1);
dif=2;
q=2;
for(i=3;i<=n;i++)
s.insert(i);
urm=s.find(3);
while(!s.empty())
{
pp=0;
for(it=urm;it!=s.end();it++)
{
q--;
if(q==0)
{
printf("%d ",*it);
it1=it;
it1++;
if(it1!=s.end())
urm=it1;
else
urm=s.begin();
dif++;
q=dif%(n-h);
s.erase(it);
pp=1;
break;
}
}
if(pp==0)
urm=s.begin();
h++;
if(s.size()==1)
{
printf("%d",*s.begin());
break;
}
}
return 0;
}