Cod sursa(job #1976323)

Utilizator radu.millio15Radu Millio radu.millio15 Data 3 mai 2017 09:25:15
Problema Stramosi Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <stdio.h>
using namespace std;
int d[100][100];
int main()
{
    FILE *fin, *fout;
    int n,m,i,j,ans,put,q,p;
    fin=fopen("stramosi.in", "r");
    fout=fopen("stramosi.out", "w");
    fscanf(fin, "%d%d", &n, &m);
    for(i=1; i<=n; i++)
      fscanf(fin, "%d", &d[i][0]);
    for(j=1; j<=17; ++j)
      for(i=1; i<=n; ++i)
        d[i][j]=d[d[i][j-1]][j-1];

    for(i=1; i<=m; i++)
    {
      fscanf(fin, "%d%d", &q, &p);
      ans=q; put=0;
      while(p)
      {
        if(p&1)
          ans=d[ans][put];
        p>>=1; put++;
      }
      fprintf(fout, "%d\n", ans);
    }
    return 0;
}