Submission #1366260

#TimeUsernameProblemLanguageResultExecution timeMemory
1366260ahmdnawazSeptember (APIO24_september)C++20
0 / 100
0 ms344 KiB

#include <bits/stdc++.h>

using namespace std;


#define endl '\n'
#define all(x) (x).begin(), (x).end()




using ll = int64_t;

int solve(int N, int M, vector<int> F, vector<vector<int>> S) {
	vector<int> vals;
	vector<int> par = F;
	vector<int> deg(N, 0);
	for (int i = 1; i < N; i++) {
		deg[i]++;
		deg[F[i]]++;
	}
	for (int i = 1; i < N; i++)
		deg[i]--;
	for (int i = 0; i < M; i++) {
		vector<int> Deg = deg;
		set<int> s; 
		int days = 0;
		for (int node : S[i]) {
			if (Deg[node] == 0) {
				while (1) {
					if (par[node] == 0) break;
					Deg[par[node]]--;
					if (Deg[par[node]] > 0) break;
					if (s.count(par[node])) s.erase(par[node]);
					node = par[node];
				}
			} else {
				s.insert(node);
			}
			if (s.empty())
				days++;
		}
		vals.push_back(days);
	}
	return *min_element(all(vals));
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...