Cod sursa(job #916095)

Utilizator mvcl3Marian Iacob mvcl3 Data 15 martie 2013 19:57:29
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
#include<vector>
using namespace std;

ifstream f("stramosi.in"); ofstream g("stramosi.out");

const int NMAX = 250009;
int n, t, q, p, x[NMAX][2];
vector<int> v[NMAX];

inline void read_Data() {
    f >> n >> t;
    for(int i = 1; i <= n; ++i) f >> x[i][1];
}

inline void solve() {
    for(int i = 1; i <= n; ++i) {
        int k = i;
        while(x[k][1] > 0) {
            v[i].push_back(x[k][1]);
            k = x[k][1];
        }
    }
}

inline void query() {
    while(t --) {
        f >> q >> p;
        if(v[q].size() <= p - 1) g << "0\n";
        else g << v[q][p - 1] << '\n';
    }
}
int main() {
    read_Data();
    solve();
    query();

    g.close();
    return 0;
}