Cod sursa(job #1022386)

Utilizator iuliusVasilescu Iulius iulius Data 5 noiembrie 2013 12:41:15
Problema Lista lui Andrei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
//program copiat de la amici... sau din acest calculator!!! :D
#include <stdio.h>
typedef struct{
    int st,dr;
}list;
list v[200002];
int val[200001],rez[200001];
int main(){
    int n,i,elemc;
    FILE *fin,*fout;
    fin=fopen("costume.in","r");
    fout=fopen("costume.out","w");
    fscanf(fin,"%d",&n);
    for(i=1;i<=n;i++){
        fscanf(fin,"%d",&val[i]);
        v[i].st=i-1;
        v[i].dr=i+1;
    }
    elemc=(n+1)/2;
    for(i=n;i>=1;i--){
        rez[i]=elemc;
        v[v[val[i]].dr].st=v[val[i]].st;
        v[v[val[i]].st].dr=v[val[i]].dr;
        if((elemc<=val[i])&&(i%2==1)){
            elemc=v[elemc].st;
        }
        if((elemc>=val[i])&&(i%2==0)){
            elemc=v[elemc].dr;
        }
    }
    for(i=1;i<=n;i++){
        fprintf(fout,"%d ",rez[i]);
    }
    fprintf(fout,"\n");
    fclose(fin);
    fclose(fout);
    return 0;
}