Submission #2546023
Source Code Expand
#include<bits/stdc++.h> using namespace std; using ll = long long; const int N = 1e5; vector<int> g[N]; vector<int> v(N, -1); int ml[N], mr[N]; int imp = 0; pair<int, int> dfs(int i, int p, int l, int r) { if(v[i] != -1) { if((l % 2 + 2) % 2 != v[i] % 2 || (v[i] < l || v[i] > r)) { imp = 1; cerr << 1 << endl; return make_pair(0, 0); } l = r = v[i]; } int nl = l, nr = r; for(int j : g[i]) if(j != p) { auto d = dfs(j, i, l - 1, r + 1); nl = max(nl, d.first); nr = min(nr, d.second); } if(nl > nr) imp = 1, cerr << 2 << endl; ml[i] = nl; mr[i] = nr; return make_pair(nl - 1, nr + 1); } void dfs2(int i, int p, int l) { l = max(l, ml[i]); if(v[i] == -1) { v[i] = l; } for(int j : g[i]) if(j != p) { dfs2(j, i, v[i] - 1); } } int main() { ios::sync_with_stdio(false), cin.tie(0); int n, k; cin >> n; for(int i = 0; i < n - 1; i++) { int a, b; cin >> a >> b; a--; b--; g[a].emplace_back(b); g[b].emplace_back(a); } int p = -1; cin >> k; for(int i = 0; i < k; i++) { int a, b; cin >> a >> b; a--; v[a] = b; } for(int i = 0; i < n; i++) if(v[i] != -1) p = i; dfs(p, -1, v[p], v[p]); dfs2(p, -1, v[p]); if(imp) { cout << "No" << endl; } else { cout << "Yes" << endl; for(int i = 0; i < n; i++) { cout << v[i] << endl; } } }
Submission Info
Submission Time | |
---|---|
Task | E - Integers on a Tree |
User | luma |
Language | C++14 (GCC 5.4.1) |
Score | 800 |
Code Size | 1448 Byte |
Status | AC |
Exec Time | 206 ms |
Memory | 15360 KB |
Judge Result
Set Name | sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 800 / 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 | 186 ms | 11520 KB |
binary_02.txt | AC | 70 ms | 10752 KB |
hand_01.txt | AC | 3 ms | 2944 KB |
hand_02.txt | AC | 2 ms | 2944 KB |
hand_03.txt | AC | 2 ms | 2944 KB |
kary_01.txt | AC | 30 ms | 6912 KB |
kary_02.txt | AC | 184 ms | 7552 KB |
kary_03.txt | AC | 29 ms | 6912 KB |
line_01.txt | AC | 34 ms | 10880 KB |
line_02.txt | AC | 184 ms | 12032 KB |
line_03.txt | AC | 183 ms | 14720 KB |
line_04.txt | AC | 186 ms | 15360 KB |
line_05.txt | AC | 90 ms | 12928 KB |
line_06.txt | AC | 110 ms | 14720 KB |
random0_01.txt | AC | 44 ms | 6272 KB |
random1_01.txt | AC | 189 ms | 7680 KB |
random1_02.txt | AC | 190 ms | 7680 KB |
random1_03.txt | AC | 191 ms | 7680 KB |
random1_04.txt | AC | 196 ms | 7680 KB |
random1_05.txt | AC | 186 ms | 7680 KB |
random1_06.txt | AC | 189 ms | 7680 KB |
random1_07.txt | AC | 190 ms | 7680 KB |
random1_08.txt | AC | 206 ms | 7680 KB |
random2_01.txt | AC | 42 ms | 6912 KB |
random2_02.txt | AC | 41 ms | 6912 KB |
random2_03.txt | AC | 42 ms | 6912 KB |
random2_04.txt | AC | 43 ms | 6912 KB |
random2_05.txt | AC | 50 ms | 6912 KB |
random2_06.txt | AC | 56 ms | 6912 KB |
random3_01.txt | AC | 42 ms | 6912 KB |
random3_02.txt | AC | 46 ms | 6912 KB |
random4_01.txt | AC | 190 ms | 7680 KB |
random4_02.txt | AC | 187 ms | 7680 KB |
random4_03.txt | AC | 193 ms | 7680 KB |
sample_01.txt | AC | 3 ms | 2944 KB |
sample_02.txt | AC | 3 ms | 2944 KB |
sample_03.txt | AC | 2 ms | 2944 KB |
star_01.txt | AC | 184 ms | 7928 KB |
star_02.txt | AC | 50 ms | 7288 KB |