Cod sursa(job #2370294)

Utilizator JohnnyTTache Radu Ioan JohnnyT Data 6 martie 2019 11:31:56
Problema Stramosi Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <vector>
#include <fstream>

using namespace std;

int main(){
    int n, m, p, q;
    fstream f("stramosi.in", fstream::in), g("stramosi.out", fstream::out);
    f >> n >> m;
    vector<int> stramosi(n);
    for(int i = 0; i < n; i++){
        f >> stramosi[i];
    }
    for(int i = 0; i < n; i++){
        if(stramosi[i] != 0){
            stramosi[i] = stramosi[stramosi[i] - 1] + 1;
        }
    }
    for(int z = 0; z < m; z++){
        f >> q >> p;
        q--;
        if(p > stramosi[q]){
            g << 0 << endl;
            continue;
        }
        for(int i = q - 1; i >= 0; i--){
            if(stramosi[i] == stramosi[q] - p){
                g << i + 1 << endl;
                break;
            }
        }
    }
    f.close();
    g.close();
}