Cod sursa(job #1549652)

Utilizator ASTELOTudor Enescu ASTELO Data 12 decembrie 2015 16:27:48
Problema Order Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#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;
}