Cod sursa(job #1774247)

Utilizator bogdi1bogdan bancuta bogdi1 Data 8 octombrie 2016 18:45:00
Problema Schi Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <cstring>
using namespace std;
int next[30005];
int f[30005];
int main()
{   freopen("schi.in", "r",stdin);
    freopen("schi.out", "w",stdout);
    int n,i,aux,nr,x,ul;
    scanf("%d", &n);
    memset(f, -1, sizeof(f));
    ul=0;
    for(i=1; i<=n; i++){
        scanf("%d", &x);
        if(f[x]==-1){
            next[next[f[ul]]]=i;
            f[i]=next[f[ul]];
        }
        else{
            if(x==1){
                aux=next[0];
                next[0]=i;
                next[i]=aux;
                f[x]=0;
                f[x+1]=i;
                f[x+2]=aux;
            }
            else{
            aux=next[f[x]];
            next[f[x]]=i;
            next[i]=aux;
            f[x+1]=i;
            f[x+2]=aux;
            }
        }
        ul=i;
    }
    nr=next[0];
    while(nr!=0){
        printf("%d\n", nr);
        nr=next[nr];
    }
    return 0;
}