Submission #1021853

#TimeUsernameProblemLanguageResultExecution timeMemory
1021853adrielcpSeptember (APIO24_september)C++17
45 / 100
145 ms15416 KiB
#include "september.h"

#include <bits/stdc++.h>
using namespace std;

int solve(int n, int m, vector<int> p, vector<vector<int>> b) {
	vector<vector<int>> adj(n, vector<int>());
	for (int i = 1; i < n; i++) adj[p[i]].push_back(i);

	int ans = n-1;
	for (auto vec : b) {
		set<int> pending;
		vector<int> vis(n);
		int day = 0;
		for (int i = 0; i < n-1; i++) {
			pending.erase(vec[i]);
			vis[vec[i]] = 1;
			for (auto children : adj[vec[i]]) {
				if (!vis[children]) pending.insert(children);
			}
			day += pending.size() == 0;
		}
		ans = min(ans, day);
	}
	return ans;
}
#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...