Cod sursa(job #1198438)
| Utilizator | Data | 15 iunie 2014 18:10:17 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
int a[19][250001];
int main() {
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,m;
f>>n>>m;
for (int i=1; i<=n; ++i)
f>>a[0][i];
for (int i=1; 1<<i <=n; i++)
for (int j=1; j<=n; j++)
a[i][j]=a[i-1][a[i-1][j]];
for (int i=1; i<=m; i++)
{
int a1,b;
f>>a1>>b;
int j=0;
while (b!=0)
{
if (b%2==1)
a1=a[j][a1];
++j;
b=b/2;
}
g<<a1<<"\n";
}
return 0;
}
