Cod sursa(job #2173619)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 15 martie 2018 23:09:29
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;

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

int n,m;
vector <int> V[200005];
struct nod{
    int tata,fiu;
}a[200005];

bool cmp(nod b,nod c)
{
    if(b.tata==c.tata)
        return b.fiu<c.fiu;
    return b.tata<c.tata;
}

int main()
{
    f>>n>>m;
    for(int i=1;i<=n;++i)
        {
            f>>a[i].tata;
            a[i].fiu=i;
        }
    sort(a+1,a+1+n,cmp);
    for(int i=1;i<=n;++i)
        if(a[i].tata)
        {
            int nod = a[i].fiu;
            int tata = a[i].tata;
            V[nod].push_back(tata);
            for(auto &it:V[tata])
                V[nod].push_back(it);
        }

    for(int i=1;i<=m;++i)
    {
        int q,p;
        f>>q>>p;
        if(V[q].size()>=p)
            g<<V[q][p-1]<<'\n';
        else
            g<<0<<'\n';
    }
    return 0;
}