Submission #1095942
Source Code Expand
#include <iostream> #include <fstream> #include <vector> #include <string> #include <algorithm> #include <set> #include <map> #include <cmath> #include <cstring> using namespace std; #define fi first #define se second typedef long long LL; typedef long double LD; LL N,a[100010],v[100010]; vector<int> g[100010]; bool dfs(int nod, int f){ int i; LL sum=0,d; if (g[nod].size()==1){ v[nod]=a[nod]; return 1; } for (i=0; i<(int)g[nod].size(); i++) if (g[nod][i]!=f){ if (!dfs(g[nod][i],nod)) return 0; sum+=v[g[nod][i]]; } d=2*a[nod]-sum; if (d<0) return 0; v[nod]=d; sum=0; int nxt; for (i=0; i<(int)g[nod].size(); i++){ nxt=g[nod][i]; if (nxt==f) continue; sum=min(2*(a[nod]-d),sum+min(a[nod]-d,v[nxt])); } if (sum<2*(a[nod]-d)) return 0; return 1; } int main(){ cin >> N; int i; for (i=1; i<=N; i++) cin >> a[i]; int x,y; for (i=1; i<N; i++){ cin >> x >> y; g[x].push_back(y); g[y].push_back(x); } if (N==2){ if (a[1]==a[2]) cout << "YES\n"; else cout << "NO\n"; return 0; } for (i=1; i<=N; i++) if (g[i].size()>1){ bool p=dfs(i,0); if (!p || v[i]!=0) cout << "NO\n"; else cout << "YES\n"; return 0; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Cleaning |
User | yoseisan |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1492 Byte |
Status | AC |
Exec Time | 165 ms |
Memory | 15232 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt |
All | sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
in1.txt | AC | 134 ms | 7424 KB |
in10.txt | AC | 135 ms | 7424 KB |
in11.txt | AC | 160 ms | 13824 KB |
in12.txt | AC | 165 ms | 13824 KB |
in13.txt | AC | 115 ms | 15232 KB |
in14.txt | AC | 117 ms | 14208 KB |
in15.txt | AC | 5 ms | 2560 KB |
in16.txt | AC | 5 ms | 2560 KB |
in17.txt | AC | 5 ms | 2560 KB |
in18.txt | AC | 5 ms | 2560 KB |
in19.txt | AC | 132 ms | 7424 KB |
in2.txt | AC | 133 ms | 7424 KB |
in20.txt | AC | 132 ms | 6656 KB |
in21.txt | AC | 133 ms | 6656 KB |
in22.txt | AC | 137 ms | 7424 KB |
in23.txt | AC | 133 ms | 7424 KB |
in24.txt | AC | 136 ms | 7424 KB |
in25.txt | AC | 5 ms | 2560 KB |
in26.txt | AC | 145 ms | 6656 KB |
in27.txt | AC | 151 ms | 6656 KB |
in28.txt | AC | 5 ms | 2560 KB |
in29.txt | AC | 104 ms | 6656 KB |
in3.txt | AC | 141 ms | 7424 KB |
in30.txt | AC | 5 ms | 2560 KB |
in31.txt | AC | 129 ms | 7424 KB |
in32.txt | AC | 132 ms | 7424 KB |
in33.txt | AC | 135 ms | 7424 KB |
in34.txt | AC | 135 ms | 7424 KB |
in35.txt | AC | 135 ms | 7424 KB |
in36.txt | AC | 133 ms | 7424 KB |
in37.txt | AC | 6 ms | 2688 KB |
in38.txt | AC | 132 ms | 7424 KB |
in39.txt | AC | 134 ms | 7424 KB |
in4.txt | AC | 137 ms | 7424 KB |
in40.txt | AC | 132 ms | 7424 KB |
in41.txt | AC | 132 ms | 7424 KB |
in42.txt | AC | 128 ms | 7424 KB |
in43.txt | AC | 129 ms | 7552 KB |
in44.txt | AC | 136 ms | 7424 KB |
in45.txt | AC | 138 ms | 7424 KB |
in5.txt | AC | 127 ms | 7424 KB |
in6.txt | AC | 132 ms | 7424 KB |
in7.txt | AC | 119 ms | 6912 KB |
in8.txt | AC | 33 ms | 3712 KB |
in9.txt | AC | 129 ms | 7424 KB |
sample1.txt | AC | 5 ms | 2560 KB |
sample2.txt | AC | 5 ms | 2560 KB |
sample3.txt | AC | 5 ms | 2560 KB |