Submission #1179132

#TimeUsernameProblemLanguageResultExecution timeMemory
1179132stdfloatSeptember (APIO24_september)C++20
100 / 100
167 ms11340 KiB
#include <bits/stdc++.h>
#include "september.h"
// #include "stub.cpp"
using namespace std;

int solve(int n, int M, vector<int> F, vector<vector<int>> S) {
	vector<int> E[n];
	for (int i = 1; i < n; i++)
		E[F[i]].push_back(i);

	vector<int> ind(n);
	for (auto i : S) {
		for (int j = 0; j < n - 1; j++)
			ind[i[j]] = max(ind[i[j]], j);
	}

	vector<int> z(n);
	for (int i = 0; i < n; i++) {
		z[i] = ind[i];
		for (auto j : E[i])
			z[i] = max(z[i], ind[j]);
	}

	int cnt = 0, r = 0;
	for (int i = 0; i < n - 1; i++) {
		for (int j = 0; j < M; j++)
			r = max(r, z[S[j][i]]);
	
		cnt += (i == r);
	}

	return cnt;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...