Cod sursa(job #48121)

Utilizator sdnxptVasiliu Radu sdnxpt Data 4 aprilie 2007 13:37:36
Problema Schi Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>
#define Nmax 30001

typedef struct Nod {
                    int inf;
                    Nod * adr;
                    };
typedef struct Nod * Lista;

Lista a;
int n;

void inserare(int k,int x)
  {
  Lista t;
  t=a;
  int i;
  for(i=1;i<k-1;i++) t=t->adr; 
  Lista q=t->adr;
  Lista c;
  c=new Nod;
  c->inf=x;
  c->adr=q;
  t->adr=c;
}

void inserare2(int x)
  {
  Lista nou;
  nou=new Nod;
  nou->inf=x;
  nou->adr=a;
  a=nou;
}

void rezolvare()
  {
  FILE * fin=fopen("schi.in","r");
  fscanf(fin,"%d",&n);
  int i,x,j;
  a=NULL;
  a=new Nod;
  a->inf=1;
  a->adr=0;
  fscanf(fin,"%d",&x);
  for(i=2;i<=n;i++) 
    {
    fscanf(fin,"%d",&x);
    if(x!=1)inserare(x,i);
    else inserare2(i);
    }
  fclose(fin);
}

void afisare()
  {
  FILE * fout=fopen("schi.out","w");
  Lista t=a;
  while(t)
    {
    fprintf(fout,"%d\n",t->inf);
    t=t->adr;
    }
  fclose(fout);
}

int main()
  {
  rezolvare();
  afisare();
  return 0;
}