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
AC × 3
AC × 38
WA × 1
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