Cod sursa(job #1032664)

Utilizator morlockRadu Tatomir morlock Data 15 noiembrie 2013 22:14:14
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <list>
#include <iterator>
#define nmax 250005
using namespace std;

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

long N, M, P, Q;
list<int> tata[nmax];
list<int>::iterator it;

int main()
{
    long t;


    in >> N >> M;
    for ( long i=1; i<=N; ++i )
    {
        in >> t;

        tata[i].push_back(t);
        tata[i].insert(tata[i].end() ,tata[t].begin(), tata[t].end());
    }

    for ( long i=1; i<=M; ++i )
    {
        in >> Q >> P;

        if ( P > tata[Q].size() ) out << 0 << '\n';
            else
            {
                it = tata[Q].begin();
                advance(it, P-1);
                out << *it << '\n';
            }
    }
/*
    for ( int i=1; i<=N; ++i )
    {
        cout << i << " ";
        for ( it = tata[i].begin(); it != tata[i].end(); ++it )
            cout << *it << " ";
        cout << '\n';
    }
*/
return 0;
}