Cod sursa(job #1466738)

Utilizator Rotsching_Robert_323CARotsching Robert Rotsching_Robert_323CA Data 30 iulie 2015 01:36:44
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <sstream>
#include <stdlib.h>
#include <queue>

using namespace std;

/*int stramosi(int * stramos, int p, int q){
	int contor = 0;
	int a;
	queue<int> coada;
	coada.push(stramos[q-1]);
	while (contor < p-1){
		a = coada.front()-1;
		coada.pop();
		if (stramos[a] == 0){
			return 0;
		}
		else{
			coada.push(stramos[a]);
		}
		contor++;
	}
	a = coada.front();
	coada.pop();
	return a;
}
*/

int stramosi(int * stramos, int p, int q){
	if (p == 1){
		return stramos[q-1];
	}
	if (stramos[q-1] == 0){
		return 0;
	}
	return stramosi(stramos, p-1, stramos[q-1]);
}

int main(){
	int i;
	int n,m;
	int p,q;
	int * membru;
	string line;
	ifstream inputfile;
	ofstream outputfile;

	inputfile.open("stramosi.in");
	outputfile.open("stramosi.out");

	if (inputfile.is_open()){
		inputfile >> n >> m;
		membru = (int*)calloc(n, sizeof(int));

		i = 0;
		while (i < n){
			inputfile >> membru[i];
			i++;
		}

		i = 0;
		while (i < m){
			inputfile >> q;
			inputfile >> p;

			outputfile << stramosi(membru,p,q) << "\n";

			i++;
		}

		free(membru);
		inputfile.close();
		outputfile.close();
	}
	return 0;
}