제출 #284629

#제출 시각아이디문제언어결과실행 시간메모리
284629ScarletSPipes (BOI13_pipes)C++17
30 / 100
1096 ms131076 KiB
#include <bits/stdc++.h> #define ll long long #define sz(x) (int)(x).size() #define pii pair<int,int> using namespace std; const int MAXN = 100001; vector<pii> edges[MAXN]; int score[MAXN]; ll cur[MAXN]; int ans[5*MAXN]; void dfs(int c, int p, int x) { for (pii i : edges[c]) if (i.first != p) { dfs(i.first, c, i.second); cur[c]+=ans[i.second]; } if (c!=1) { ans[x]=score[c]-cur[c]; cur[c]=score[c]; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n,m,u,v; cin>>n>>m; for (int i = 1; i <= n; ++i) cin>>score[i]; for (int i = 0; i < m; ++i) { cin>>u>>v; edges[u].push_back({v,i}); edges[v].push_back({u,i}); } dfs(1,0,0); if (score[1]!=cur[1]) { cout<<"0\n"; return 0; } for (int i=0;i<m;++i) cout<<ans[i]*2<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...