Cod sursa(job #3230888)

Utilizator george._.sSerbanescu George Florin george._.s Data 23 mai 2024 10:44:10
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
#include <fstream>

std::ifstream f("stramosi.in");
std::ofstream g("stramosi.out");
int N, M;
int stramosi [20][250001];

int main() {
    f >> N >> M;
    for(int i = 1; i <= N; i++) {
        f >> stramosi[0][i];
    }
    for(int i = 1; i <= 19; i++) {
        for(int j = 1; j <= N; j++) {
            stramosi[i][j] = stramosi[i-1][stramosi[i-1][j]];
        }
    }

    for(int i = 1; i <= M; i++){
        int x, y;
        f >> x >> y;
        int exp = 0;
        while(y) {
            if(y & 1) x = stramosi[exp][x];
            exp += 1;
            y /= 2;
        }
        g << x << '\n';
    }

    return 0;
}