Submission #1054831

#TimeUsernameProblemLanguageResultExecution timeMemory
1054831kiryl_krutskoSpring cleaning (CEOI20_cleaning)C++14
0 / 100
1041 ms262144 KiB
#include <iostream> #include <vector> using namespace std; struct node { int num; vector<node*> conns; }; int check_subtree(node* root, int parent_num) { int ans = 0; int odd_children_num = 0; for (auto child : root->conns) { if (child->num == parent_num) continue; int child_cost = check_subtree(child, root->num); if (child_cost >= 0) { ans += (child_cost + 1); odd_children_num++; } else ans += (2 - child_cost); } if (odd_children_num % 2 == 1) return ans; else return -ans; } int main() { int n, q; cin >> n; vector<node> vec(n); int a, b; vec[0].num = 0; for (int i = 1; i < n; i++) { vec[i].num = i; cin >> a >> b; a--; b--; vec[a].conns.push_back(&vec[b]); vec[b].conns.push_back(&vec[a]); } int total_cost = check_subtree(&vec[0], -1); if (total_cost < 0) cout << -total_cost; else if (vec[0].conns.size() == 1) cout << total_cost; else cout << -1; cout << endl; /* int new_num; for (int i = 0; i < q; i++) { cin >> new_num; for (int j = 0; j < new_num; j++) { cin >> a; } if ((n - 1) % 2 == 1 && n!= 2) { cout << -1 << endl; } else cout << n - 1 + new_num << endl; }*/ }

Compilation message (stderr)

cleaning.cpp: In function 'int main()':
cleaning.cpp:31:9: warning: unused variable 'q' [-Wunused-variable]
   31 |  int n, q;
      |         ^
#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...