Cod sursa(job #222152)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 20 noiembrie 2008 20:02:04
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#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;
}