Cod sursa(job #1428835)

Utilizator ASTELOTudor Enescu ASTELO Data 5 mai 2015 10:16:45
Problema Order Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#include<set>
using namespace std;
set<int> s;
set<int>::iterator it,urm,it1;
int n,q,dif,i,pp;
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;
            s.erase(it);
            pp=1;
            break;
            }
        }
    if(pp==0)
        urm=s.begin();
    }
return 0;
}