Submission #1517668
Source Code Expand
#include <iostream> #include <vector> #define INF 1e+9 using namespace std; int n,k,l[100000],r[100000],num[100000]; vector<int> G[100000]; bool flag = true; void dfs(int v,int par){ int mi = -INF,ma = INF; for(int to : G[v]){ if(to == par) continue; dfs(to,v); mi = max(mi,l[to]); ma = min(ma,r[to]); } if(mi == -INF) return; mi--;ma++; if(l[v] != -INF){ if(r[v] < mi || ma < l[v]) flag = false; } else{ if(mi > ma) flag = false; l[v] = mi; r[v] = ma; } } void solve(int v,int par){ if(par == -1){ if(l[v] == -INF) num[v] = 0; else num[v] = l[v]; }else{ if(l[v] <= num[par] + 1 && num[par] + 1 <= r[v]) num[v] = num[par] + 1; else num[v] = num[par] - 1; } for(int to : G[v]) if(to != par) solve(to,v); } int main(){ cin >> n; for(int i = 0;i < n;i++){ l[i] = -INF; r[i] = INF; num[i] = INF; } for(int i = 0;i < n - 1;i++){ int a,b; cin >> a >> b; a--;b--; G[a].push_back(b); G[b].push_back(a); } cin >> k; for(int i = 0;i < k;i++){ int v,p; cin >> v >> p; v--; l[v] = p; r[v] = p; } dfs(0,-1); if(!flag){ cout << "No" << endl; return 0; } cout << "Yes" << endl; solve(0,-1); for(int i = 0;i < n;i++) cout << num[i] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Integers on a Tree |
User | hoget157 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1287 Byte |
Status | WA |
Exec Time | 322 ms |
Memory | 15360 KB |
Judge Result
Set Name | sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 800 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | binary_01.txt, binary_02.txt, hand_01.txt, hand_02.txt, hand_03.txt, kary_01.txt, kary_02.txt, kary_03.txt, line_01.txt, line_02.txt, line_03.txt, line_04.txt, line_05.txt, line_06.txt, random0_01.txt, random1_01.txt, random1_02.txt, random1_03.txt, random1_04.txt, random1_05.txt, random1_06.txt, random1_07.txt, random1_08.txt, random2_01.txt, random2_02.txt, random2_03.txt, random2_04.txt, random2_05.txt, random2_06.txt, random3_01.txt, random3_02.txt, random4_01.txt, random4_02.txt, random4_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, star_01.txt, star_02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
binary_01.txt | AC | 269 ms | 11520 KB |
binary_02.txt | AC | 88 ms | 10752 KB |
hand_01.txt | AC | 2 ms | 2560 KB |
hand_02.txt | AC | 2 ms | 2560 KB |
hand_03.txt | AC | 2 ms | 2560 KB |
kary_01.txt | AC | 84 ms | 6912 KB |
kary_02.txt | AC | 231 ms | 7552 KB |
kary_03.txt | AC | 81 ms | 6912 KB |
line_01.txt | AC | 101 ms | 14720 KB |
line_02.txt | AC | 238 ms | 15360 KB |
line_03.txt | AC | 238 ms | 15360 KB |
line_04.txt | AC | 254 ms | 15360 KB |
line_05.txt | AC | 87 ms | 14720 KB |
line_06.txt | AC | 102 ms | 14720 KB |
random0_01.txt | AC | 125 ms | 6912 KB |
random1_01.txt | AC | 245 ms | 7680 KB |
random1_02.txt | AC | 247 ms | 7680 KB |
random1_03.txt | AC | 256 ms | 7680 KB |
random1_04.txt | AC | 285 ms | 7680 KB |
random1_05.txt | AC | 244 ms | 7680 KB |
random1_06.txt | AC | 243 ms | 7680 KB |
random1_07.txt | AC | 250 ms | 7680 KB |
random1_08.txt | AC | 322 ms | 7680 KB |
random2_01.txt | AC | 91 ms | 6912 KB |
random2_02.txt | AC | 89 ms | 6912 KB |
random2_03.txt | AC | 92 ms | 6912 KB |
random2_04.txt | AC | 95 ms | 6912 KB |
random2_05.txt | AC | 128 ms | 6912 KB |
random2_06.txt | AC | 162 ms | 6912 KB |
random3_01.txt | AC | 90 ms | 6912 KB |
random3_02.txt | WA | 280 ms | 7680 KB |
random4_01.txt | AC | 244 ms | 7680 KB |
random4_02.txt | AC | 250 ms | 7680 KB |
random4_03.txt | AC | 247 ms | 7680 KB |
sample_01.txt | AC | 2 ms | 2560 KB |
sample_02.txt | AC | 2 ms | 2560 KB |
sample_03.txt | AC | 2 ms | 2560 KB |
star_01.txt | AC | 248 ms | 7928 KB |
star_02.txt | AC | 98 ms | 7288 KB |