Cod sursa(job #760609)

Utilizator ion824Ion Ureche ion824 Data 22 iunie 2012 13:16:38
Problema Order Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<fstream>
using namespace std;
int A[90005],p;
ofstream fout("order.out");

void init(int nod,int left,int right){
     A[nod]=right-left+1;
     if(left==right)return ;
     int div=(left+right)>>1;;
     init(2*nod,left,div);
     init(2*nod+1,div+1,right);
     } 

void update(int nod,int left,int right,int poz){
     if(left==right){
        A[nod]=0;
        fout<<left<<' ';
        return;
        }
     int div=(left+right)>>1;
     if(p<=poz+A[2*nod])update(2*nod,left,div,poz);
                   else update(2*nod+1,div+1,right,poz+A[2*nod]);
     A[nod]=A[2*nod]+A[2*nod+1];
     }


int main(void){
    ifstream fin("order.in");    
    int n,i;
    fin>>n;
    init(1,1,n); p=2;
    for(i=0;i<n;++i)
     {
      p=(p+i-1)%(n-i)+1;
      update(1,1,n,0);               
     }                                                               
 return 0;   
}