Submission #1061183


Source Code Expand

#include <iostream>
#include <vector>

using namespace std;

struct Info {
	Info() : dist(0), cnt(0){}
	int dist, cnt;
};

struct Node {
	Node(int src, int dst, int l) : src(src), dst(dst), l(l){}
	int src, dst, l;
};

Info dfs(const vector<vector<Node>>& g, int pos, int prev, int d){
	Info res;
	int near = 0, far = 1000000010;
	for(const Node& n : g[pos]){
		if(n.dst == prev) continue;
		Info ni = dfs(g, n.dst, pos, d);
		res.cnt += ni.cnt;
		int nd = ni.dist + n.l;
		if(2 * nd < d){
			near = max(near, nd);
			--res.cnt;
		} else {
			far = min(far, nd);
		}
	}
	if(near + far < d){
		res.dist = far;
	} else {
		res.dist = near;
		++res.cnt;
	}
	return res;
}

int main(){
	int N, K;
	while(cin >> N >> K){
		vector<vector<Node>> g(N);
		for(int i=0;i<N-1;++i){
			int a, b, c; cin >> a >> b >> c;
			--a; --b;
			g[a].push_back(Node(a, b, c));
			g[b].push_back(Node(b, a, c));
		}
		int l = 0, r = 1000000010;
		while(r-l > 1){
			int m = (l+r)/2;
			if(dfs(g, 0, -1, m).cnt >= K){
				l = m;
			} else {
				r = m;
			}
		}
		cout << l << endl;
	}
}

Submission Info

Submission Time
Task H - High-powered Illuminations
User pes
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1125 Byte
Status AC
Exec Time 529 ms
Memory 26752 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 50 / 50 50 / 50
Status
AC × 4
AC × 26
AC × 48
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
dataset1 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt
dataset2 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt
Case Name Status Exec Time Memory
01-01.txt AC 3 ms 256 KB
01-02.txt AC 88 ms 2816 KB
01-03.txt AC 88 ms 2816 KB
01-04.txt AC 88 ms 2816 KB
01-05.txt AC 88 ms 2816 KB
01-06.txt AC 88 ms 2816 KB
01-07.txt AC 80 ms 2944 KB
01-08.txt AC 80 ms 2816 KB
01-09.txt AC 81 ms 2816 KB
01-10.txt AC 79 ms 3072 KB
01-11.txt AC 80 ms 3072 KB
01-12.txt AC 80 ms 3072 KB
01-13.txt AC 52 ms 3072 KB
01-14.txt AC 53 ms 3072 KB
01-15.txt AC 52 ms 3072 KB
01-16.txt AC 53 ms 3072 KB
01-17.txt AC 82 ms 5504 KB
01-18.txt AC 80 ms 5504 KB
01-19.txt AC 48 ms 3004 KB
01-20.txt AC 47 ms 3004 KB
01-21.txt AC 47 ms 3004 KB
01-22.txt AC 69 ms 2816 KB
02-01.txt AC 490 ms 13312 KB
02-02.txt AC 529 ms 13184 KB
02-03.txt AC 482 ms 13184 KB
02-04.txt AC 484 ms 13184 KB
02-05.txt AC 496 ms 13184 KB
02-06.txt AC 485 ms 13184 KB
02-07.txt AC 435 ms 13440 KB
02-08.txt AC 436 ms 13440 KB
02-09.txt AC 444 ms 13312 KB
02-10.txt AC 443 ms 13440 KB
02-11.txt AC 423 ms 14592 KB
02-12.txt AC 425 ms 14592 KB
02-13.txt AC 426 ms 14592 KB
02-14.txt AC 279 ms 13952 KB
02-15.txt AC 280 ms 13952 KB
02-16.txt AC 280 ms 13824 KB
02-17.txt AC 514 ms 26752 KB
02-18.txt AC 474 ms 26752 KB
02-19.txt AC 246 ms 13488 KB
02-20.txt AC 246 ms 13488 KB
02-21.txt AC 419 ms 11704 KB
02-22.txt AC 496 ms 26752 KB
sample-01.txt AC 3 ms 256 KB
sample-02.txt AC 2 ms 256 KB
sample-03.txt AC 2 ms 256 KB
sample-04.txt AC 3 ms 256 KB