Cod sursa(job #1305211)

Utilizator Vele_GeorgeVele George Vele_George Data 29 decembrie 2014 17:20:11
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

vector<vector<int> > g;
vector<int> T;


void gen(int x)       // N*logN
{
    int aux=T[x];
    while(aux!=0)
    {
        g[x].push_back(aux);
        aux=T[aux];
    }
}


int main()
{
    int n,m,x,y;

    f>>n>>m;
    T.resize(n+1);
    g.resize(n+1);
    for(int i=1; i<=n; i++)
    {
        f>>T[i];
    }

    for(int i=1; i<=n; i++)
    {
        gen(i);
    }

    for(int i=0; i<m; i++)
    {
        f>>x>>y;
        y=y-1;
        if (g[x].size()>y) go<<g[x][y]<<"\n";
        else go<<"0\n";
    }

    f.close();
    go.close();
    return 0;
}