Cod sursa(job #1121885)

Utilizator Athena99Anghel Anca Athena99 Data 25 februarie 2014 14:38:27
Problema Order Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;

ifstream fin("order.in");
ofstream fout("order.out");

const int nmax= 30000;
const int cns= 10;

int prv[nmax+1], nxt[nmax+1];

int main(  ) {
    int n, pos= 1;
    fin>>n;
    for ( int i= 1; i<=n; ++i ) {
        prv[i]= i-1, nxt[i]= i+1;
    }
    prv[1]= n, nxt[n]= 1;

    for ( int i= 1; i<=n; ++i ) {
        int step;
        for ( step= i; step>=cns; step-= cns ) {
            pos= nxt[nxt[nxt[nxt[nxt[nxt[nxt[nxt[nxt[nxt[pos]]]]]]]]]];
        }
        for ( int j= 1; j<=step; ++j ) {
            pos= nxt[pos];
        }

        fout<<pos<<" ";
        prv[nxt[pos]]= prv[pos];
        nxt[prv[pos]]= nxt[pos];
    }
    fout<<"\n";

    return 0;
}