Cod sursa(job #371917)

Utilizator vladiiIonescu Vlad vladii Data 7 decembrie 2009 20:34:15
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream f1, f2;
    int stra[19][250001], n, m, k, p, i, j, f;
    f1.open("stramosi.in", ios::in);
    f1>>n>>m;
    for(i=1; i<=n; i++) {
         f1>>p;
         if(p==0) {
              for(j=0; j<=18; j++) {
                   stra[j][i]=0;
              }
         }
         else {
              stra[0][i]=p;
              for(j=1; j<=18; j++) {
                   stra[j][i]=stra[j-1][stra[j-1][i]];
              }
         }
    }
    f2.open("stramosi.out", ios::out);
    for(i=1; i<=m; i++) {
         f1>>p>>k;
         j=0; f=p;
         while(k) {
              if(k%2==1) {
                   f=stra[j][f];
              }
              j++; k=k/2;
         }
         f2<<f<<endl;
    }
    f1.close(); f2.close();
    return 0;
}