Cod sursa(job #304965)
Utilizator | Data | 15 aprilie 2009 21:22:19 | |
---|---|---|---|
Problema | Stramosi | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<fstream.h>
#include<math.h>
int main()
{int (*b)[250005]=new int[22][250005],*a=new int[250005],k;
long i,j,m,n,p,q;
ofstream g("stramosi.out");
ifstream f("stramosi.in");
f>>n>>m;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<=n;i++)
b[1][i]=a[i];
k=2;
while((1<<k)<=n){
for(i=1;i<=n;++i) b[k][i]=a[b[k-1][i]];
++k;
}
for(i=1;i<=m;i++)
{f>>q>>p;
g<<b[p][q]<<'\n'; }
f.close();
g.close();
return 0;
}