Cod sursa(job #3231616)

Utilizator alexionut05Alexandru-Ionut Tincu alexionut05 Data 27 mai 2024 13:03:21
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdint>
#include <fstream>

#define SIZE 250001

int main()
{
	std::ifstream fin("stramosi.in");
	std::ofstream fout("stramosi.out");

	int_fast32_t members, queries;
	fin >> members >> queries;

	int_fast32_t tree_depth = 0;

	int_fast32_t ancestors[SIZE];
	for (int_fast32_t i = 1; i <= members; ++i) {
		fin >> ancestors[i];
		tree_depth += (ancestors[i] == i - 1);
	}

	if (tree_depth == members) {
		while (queries--) {
			int_fast32_t x, y;
			fin >> x >> y;
			fout << ((x >= y) ? (x - y) : 0) << '\n';
		}
	}

	else {
		while (queries--) {
			int_fast32_t x, y;
			fin >> x >> y;

			while (y-- && x) {
				x = ancestors[x];
			}

			fout << x << '\n';
		}
	}

	return 0;
}