Cod sursa(job #169101)
Utilizator | Data | 1 aprilie 2008 07:07:39 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<fstream>
using namespace std;
int x[250001], n,m,p,q,a[32][250001];
int main(){
int i, j, s;
ifstream f("stramosi.in");
f>>n>>m;
for(i=1;i<=n;i++)
f>>x[i];
for(i=1;i<=n;i++)
a[0][i]=x[i];
for(i=1;i<32;i++)
for(j=1;j<=n;j++)
a[i][j]=a[i-1][a[i-1][j]];
ofstream g("stramosi.out");
for(i=0;i<m;i++){
f>>q>>p;
j=0;s=q;
while(p){
if(p&1) s=a[j][s];
j++;
p>>=1;
}
g<<s<<'\n';
}
f.close();
g.close();
return 0;
}