Submission #1046483

#TimeUsernameProblemLanguageResultExecution timeMemory
10464830npataBeech Tree (IOI23_beechtree)C++17
0 / 100
1 ms348 KiB
#include "beechtree.h"
#include<bits/stdc++.h>
using namespace std;

#define vec vector

std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C)
{
	vec<set<int>> cs(N);
	vec<int> ans(N, 1);

	bool ok = true;
	for(int i = 1; i<N; i++) {
		if(cs[P[i]].count(C[i])) {
			ok = false;
			ans[P[i]] = 0;
		}
		cs[P[i]].insert(C[i]);
	}

	ans[0] = ok;

	if(!ok) return ans;

	sort(cs.begin()+1, cs.end(), [&](auto& s1, auto& s2) { return s1.size()<s2.size(); });

	for(int i = 1; i<N; i++) {
		for(int val : cs[i]) {
			if(!cs[i-1].count(val)) {
				ans[0] = false;
				return ans;
			}
		}
	}

	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...