Pagini recente » Cod sursa (job #999366) | Cod sursa (job #2934004) | Cod sursa (job #576596) | Cod sursa (job #2216313) | Cod sursa (job #222152)
Cod sursa(job #222152)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int stramos[250001],niv[250001]={0},**arb,n,m,x,y,aux,pos;
void citire()
{in>>n>>m;
for(int i=1;i<=n;i++)
{in>>stramos[i];niv[i]=niv[stramos[i]]++;
arb[i][stramos[i]]=1;arb[stramos[i]][i]=1;
for(int j=1;j<=n;j++)
{arb[i][j]=arb[i][j]|arb[stramos[i]][j];}
}}
int main()
{ citire();
for(;m;m--)
{in>>x>>y;
if((niv[x]-y)<=0) out<<'0'<<'\n';
else {aux=niv[x]-y; pos=0;
for(int i=1;i<=n;i++)
if(niv[i]==aux)
if(arb[i][x]==1) {pos=i;out<<pos<<'\n';break;}
}
}
return 0;
}