Cod sursa(job #584525)
| Utilizator | Data | 25 aprilie 2011 19:14:02 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include<fstream>
using namespace std;
int n, m;
int str[20][250001];
int main() {
int i, j, q, p, s;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
f >> n >> m;
for(i = 1; i <= n; ++i)
f >> str[0][i];
for(i = 1; (1 << i) < n; ++i)
for(j = 1; j <= n; ++j)
str[i][j] = str[i - 1][str[i - 1][j]];
for(j = 1; j <= m; ++j) {
f >> p >> q;
for(i = 20; i >= 0; --i)
if(q & (1 << i))
p = str[i][p];
g << p << '\n';
}
g.close();
return 0;
}