Cod sursa(job #12688)

Utilizator alinaddoca alina alinad Data 4 februarie 2007 17:09:34
Problema Stramosi Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>

FILE *f=fopen("stramosi.in", "r"), *g=fopen("stramosi.out", "w");


struct nod
{
 long int om, str;
 nod *urm;
};


nod *prim;



void aflare_str(long int q, long int p)
{
 long int x, i;
 nod *l;
 x=q;
 l=prim;
 i=0;
 while(l && i<p)
  {
   if(l->om==x)
    {
     x=l->str;
     if(x!=0)
       l=prim;
     else
       l=NULL;
     i++;
    }
   else
    l=l->urm;
  }

 if(l==NULL)
  fprintf(g, "0\n");
 else
  fprintf(g, "%d\n", x);
}


int main()
{
 long int i, p, q, n, m, k;
 fscanf(f, "%ld%ld", &n, &m);
 nod *l;
 for(i=1; i<=n; i++)
  {
   fscanf(f, "%ld", &k);
   l=new nod;
   l->om=i;
   l->str=k;
   l->urm=NULL;

   if(prim==NULL)
    prim=l;
   else
    {
     l->urm=prim;
     prim=l;
    }
  }

 for(i=1; i<=m; i++)
  {
   fscanf(f, "%ld%ld", &q, &p);
   aflare_str(q, p);
  }

 return 0;

}