# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1083527 | SamueleVid | Beech Tree (IOI23_beechtree) | C++17 | 2099 ms | 34704 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
constexpr int MAXN = 2e5 + 5;
constexpr int MAXM = 2e5 + 5;
int depth[MAXN];
vector<int> adj[MAXN];
vector<int> P;
vector<int> C;
set<int> colori_prof[3];
int numero[3];
void dfs2(int u) {
// cout << "visito " << u << " con depth " << depth[u] << '\n';
colori_prof[depth[u]].insert(C[u]);
// cout << "aumento numero[depth[u]] da " << numero[depth[u]] << " a ";
numero[depth[u]] ++;
// cout << numero[depth[u]] << '\n';
// cout << "vicini di " << u << " :";
// for (auto x : adj[u]) {
// cout << x << " ";
// }
// cout << '\n';
for (auto x : adj[u]) {
if (x == P[u]) continue;
depth[x] = depth[u] + 1;
dfs2(x);
}
}
vector<int> beechtree(int N, int M, vector<int> P, vector<int> C) {
:: P = P;
:: C = C;
fill(colori_prof, colori_prof + 3, set<int>());
fill(numero, numero + 3, 0);
fill(adj, adj + MAXN, vector<int>());
for (int i = 1; i < N; i ++) {
adj[P[i]].push_back(i);
adj[i].push_back(P[i]);
}
depth[0] = 0;
dfs2(0);
vector<int> res(N, 1);
bool condivide_uno = 0;
for (auto x : colori_prof[2]) {
if (colori_prof[1].count(x)) condivide_uno = 1;
}
// cout << "colori_prof[2].size() : " << colori_prof[2].size() << '\n';
// cout << "condivide_uno : " << condivide_uno << '\n';
// cout << "colori_prof[1].size() : " << colori_prof[1].size() << '\n';
// cout << "numero[1] : " << numero[1] << '\n';
if (((colori_prof[2].size() == 1 && condivide_uno) || (colori_prof[2].size() == 0)) && colori_prof[1].size() == numero[1]) {
res[0] = 1;
}
else {
res[0] = 0;
}
return res;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |