Cod sursa(job #2719751)
| Utilizator | Data | 10 martie 2021 11:40:40 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
#define mF "stramosi"
std::ifstream in(mF ".in");
std::ofstream out(mF ".out");
constexpr int log(int e) {return e? log(e >> 1) + 1: 1;}
const int N = 250001; int L[log(N)][N];
int main()
{
int n, m; in >> n >> m; for (int i = 1; i <= n; i++) in >> (*L)[i];
for (int p = 1, ln = log(n); p < ln; p++) for (int i = 1; i <= n; i++) L[p][i] = L[p-1][ L[p-1][i] ];
while (m--) {int i, s; in >> i >> s; for (int p = 0; s; p++, s >>= 1) if (s & 1) i = L[p][i]; out << i << '\n';}
}
