Submission #555861

#TimeUsernameProblemLanguageResultExecution timeMemory
555861bluePipes (BOI13_pipes)C++17
35 / 100
67 ms12492 KiB
#include <iostream> #include <vector> using namespace std; using ll = long long; using vi = vector<int>; using pii = pair<int, int>; using vpii = vector<pii>; using vll = vector<ll>; const int mx = 100'000; int N, M; vpii edge[1+mx]; vll c(1+mx); vll x(1+mx); void dfs(int u, int p) { for(pii vp : edge[u]) { int v = vp.first; int e = vp.second; if(v == p) continue; dfs(v, u); x[e] = 2*c[v]; c[v] = 0; c[u] -= c[v]; } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M; cin >> N >> M; if(M > N) { cout << "0\n"; return 0; } for(int i = 1; i <= N; i++) cin >> c[i]; for(int j = 1; j <= M; j++) { int u, v; cin >> u >> v; edge[u].push_back({v, j}); edge[v].push_back({u, j}); } if(M == N-1) { dfs(1, 0); } for(int e = 1; e <= M; e++) cout << x[e] << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...