1 개요[ | ]
- BOJ 17435 합성함수와 쿼리
2 C++[ | ]
C++
Copy
#include <bits/stdc++.h>
using namespace std;
int m;
int Next[500001][19];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> m;
for (int i = 1; i <= m; i++) {
cin >> Next[i][0];
}
for (int j=1; j<19; j++) {
for (int i=1; i<=m; i++) {
Next[i][j] = Next[Next[i][j-1]][j-1];
}
}
int Q, n, x;
cin >> Q;
while (Q--) {
cin >> n >> x;
for (int bit=18; bit>=0; bit--) {
if ((n & (1 << bit))) {
x = Next[x][bit];
}
}
cout << x << '\n';
}
}
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.