Cod sursa(job #616665)

Utilizator soriynSorin Rita soriyn Data 13 octombrie 2011 00:54:42
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<fstream>
#define maxn 250010
#include<stack>
using namespace std;

int tati[maxn];

stack<int> stiva;
int n,m;
ifstream in("stramosi.in");
ofstream out("stramosi.out");



	
void dfs(int nod,int cnt,int val)
{
	if(cnt==val) {out<<nod<<"\n"; return;}
	else 
	{
		cnt++;
		if(tati[nod]==0) {out<<"0\n"; return;}
		else 
		dfs(tati[nod],cnt,val);
	}
}


int main()
{
	
	int a,b,cnt,nod,val;
	in>>n>>m;
	for(int i=1;i<=n;i++)
		in>>tati[i];
    for(int i=1;i<=m;i++)
	{
		in>>nod>>val;
		cnt=0;
		stiva.push(nod);
		while(1!=0)
	    {
			nod=stiva.top();
			stiva.pop();
		if(cnt==val) {out<<nod<<"\n";break;}
		else
		{
			cnt++;
			if(tati[nod]==0) {out<<"0\n";break;}
			else {stiva.push(tati[nod]);}
		}
	    }

		//dfs(a,0,b);
	}
}