Pagini recente » Cod sursa (job #1907071) | Cod sursa (job #1503341) | Cod sursa (job #196152) | Cod sursa (job #1165166) | Cod sursa (job #2246107)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int N,M;
int v[250001],varf,x,y,u[250001],k,a[2500][2500];
vector<int>la[250001];
void p(int x)
{
for(int i=0;i<la[x].size();i++)
if(v[la[x][i]]==0)
{
v[la[x][i]]=1;
for(int j=1;(j<la[x][i])&&(a[x][j]!=0);j++)
a[la[x][i]][j+1]=a[x][j];
p(la[x][i]);
}
}
int main()
{ f>>N>>M;
for(int i=1;i<=N;i++)
{
f>>a[i][1];
if(a[i][1]!=0)
{
la[a[i][1]].push_back(i);
}
else
u[++k]=i;
}
for(int i=1;i<=k;i++)
p(u[i]);
for(int i=1;i<=M;i++)
{
f>>x>>y;
g<<a[x][y]<<"\n";
}
return 0;
}