Cod sursa(job #185017)

Utilizator DastasIonescu Vlad Dastas Data 24 aprilie 2008 17:56:06
Problema Order Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>

const int maxn = 30001;

FILE *in = fopen("order.in","r"), *out = fopen("order.out","w");

int n;
short a[maxn];

inline void del(int poz)
{
    for ( int i = poz; i < n; ++i )
        a[i] = a[i+1];

    --n;
}

void go()
{
    int i = 2;
    int cnt = n;

    int s = n;
    while ( n )
    {
        cnt = s;

        if ( i + cnt - n <= n )
            i = i + cnt - n;
        else
            while ( cnt > n )
            {
                ++i;

                if ( i > n )
                    i = 1;

                --cnt;
            }

        fprintf(out, "%hd ", a[i]);
        del(i);
        if ( i == n + 1 )
            i = 1;
    }

}

int main()
{
    fscanf(in, "%d\n", &n);

    for ( int i = 1; i <= n; ++i )
        a[i] = i;

    go();

    return 0;
}