Pagini recente » Cod sursa (job #655488) | Cod sursa (job #1700398) | Cod sursa (job #2049202) | Cod sursa (job #2714050) | Cod sursa (job #2173619)
#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;
}