Cod sursa(job #3297800)
Utilizator | Data | 23 mai 2025 20:18:28 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <fstream>
#define nmax 250010
using namespace std;
int main() {
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, m, x, y, xx, i, j, pred[19][nmax], log2;
cin >> n >> m;
for (i = 1; i <= n; i++) cin >> pred[0][i];
log2 = 0;
for (i = 1; (1 << i) <= n; i++) {
for (j = 1; j <= n; j++) pred[i][j] = pred[i - 1][pred[i - 1][j]];
log2 = i;
}
for (i = 1; i <= m; i++) {
cin >> x >> y;
for (j = 0; j <= log2; j++)
if ((y >> j) & 1) x = pred[j][x];
cout << x << "\n";
}
return 0;
}