Submission
# | When | Author | Problem | Language | CPU | Memory | |
---|---|---|---|---|---|---|---|
20853 | 2024-06-12 23:39:00 | AHAMMED_99 | Bonus Project | C++ 17 | 13 ms | 3432 kb | Wrong Answer - 1 |
Source Code
#include <iostream> #include <vector> using namespace std; void dfs(int node, const vector<vector<int>>& subordinates, vector<int>& balances, int leader, int Y) { if (node == leader) { balances[node - 1] += 2 * Y; } else { balances[node - 1] += Y; } for (int sub : subordinates[node]) { dfs(sub, subordinates, balances, leader, Y); } } void processTestCase(int N, int Q, vector<int>& initialBalances, vector<pair<int, int>>& hierarchy, vector<pair<int, int>>& projects) { vector<vector<int>> subordinates(N + 1); vector<int> finalBalances = initialBalances; // Build the hierarchy tree for (auto& h : hierarchy) { int A = h.first, B = h.second; subordinates[A].push_back(B); } // Process each project for (auto& project : projects) { int X = project.first, Y = project.second; dfs(X, subordinates, finalBalances, X, Y); } // Print final balances for (int i = 0; i < N; ++i) { cout << finalBalances[i] << (i == N - 1 ? "\n" : " "); } } int main() { int T; cin >> T; while (T--) { int N, Q; cin >> N >> Q; vector<int> initialBalances(N); for (int i = 0; i < N; ++i) { cin >> initialBalances[i]; } vector<pair<int, int>> hierarchy(N - 1); for (int i = 0; i < N - 1; ++i) { cin >> hierarchy[i].first >> hierarchy[i].second; } vector<pair<int, int>> projects(Q); for (int i = 0; i < Q; ++i) { cin >> projects[i].first >> projects[i].second; } processTestCase(N, Q, initialBalances, hierarchy, projects); } return 0; }