Submission #2242436


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10;

struct Edge {
	int dest, weight;
	Edge() {}
	Edge(int _dest, int _weight) : dest(_dest), weight(_weight) {}
};
vector<Edge> edges[N];
long long dist[N];
int n, size[N], mx[N];

void dfs(int x, int pre) {
	size[x] = 1;
	for (int i = 0; i < edges[x].size(); ++i) {
		int y = edges[x][i].dest, w = edges[x][i].weight;
		if (y != pre) {
			dist[y] = w;
			dfs(y, x);
			size[x] += size[y];
			mx[x] = max(mx[x], size[y]);
		}
	}
}

int main() {
	scanf("%d", &n);
	for (int i = 1; i < n; ++i) {
		int x, y, w;
		scanf("%d%d%d", &x, &y, &w);
		edges[x].push_back(Edge(y, w));
		edges[y].push_back(Edge(x, w));
	}
	dfs(1, 0);
	long long ans = 0LL;
	for (int i = 1; i <= n; ++i) {
		ans += min(size[i], n - size[i]) * dist[i];
		mx[i] = max(mx[i], n - size[i]);
	}
	ans <<= 1;
	vector<int> root;
	root.push_back(1);
	for (int i = 2; i <= n; ++i)
		if (mx[i] < mx[root[0]]) {
			root.clear();
			root.push_back(i);
		} else if (mx[i] == mx[root[0]])
			root.push_back(i);
	assert(root.size() <= 2);
	if (root.size() == 2) {
		int x = root[0];
		for (int i = 0; i < edges[x].size(); ++i) {
			int y = edges[x][i].dest, w = edges[x][i].weight;
			if (y == root[1]) ans -= w;
		}
	} else {
		int x = root[0], min_weight = INT_MAX;
		for (int i = 0; i < edges[x].size(); ++i)
			min_weight = min(min_weight, edges[x][i].weight);
		ans -= min_weight;
	}
	printf("%lld\n", ans);
}

Submission Info

Submission Time
Task D - Tree and Hamilton Path
User UglyAndPretty
Language C++14 (GCC 5.4.1)
Score 1100
Code Size 1501 Byte
Status AC
Exec Time 57 ms
Memory 13952 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:29:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
./Main.cpp:32:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d%d", &x, &y, &w);
                              ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1100 / 1100
Status
AC × 2
AC × 38
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt
Case Name Status Exec Time Memory
sample_01.txt AC 2 ms 2560 KB
sample_02.txt AC 2 ms 2560 KB
subtask_1_01.txt AC 2 ms 2560 KB
subtask_1_02.txt AC 45 ms 7296 KB
subtask_1_03.txt AC 24 ms 5120 KB
subtask_1_04.txt AC 49 ms 7680 KB
subtask_1_05.txt AC 28 ms 6656 KB
subtask_1_06.txt AC 20 ms 4860 KB
subtask_1_07.txt AC 22 ms 4864 KB
subtask_1_08.txt AC 25 ms 5248 KB
subtask_1_09.txt AC 16 ms 4352 KB
subtask_1_10.txt AC 7 ms 3840 KB
subtask_1_11.txt AC 15 ms 4224 KB
subtask_1_12.txt AC 51 ms 7808 KB
subtask_1_13.txt AC 51 ms 7808 KB
subtask_1_14.txt AC 51 ms 7808 KB
subtask_1_15.txt AC 51 ms 7808 KB
subtask_1_16.txt AC 51 ms 7808 KB
subtask_1_17.txt AC 51 ms 7808 KB
subtask_1_18.txt AC 51 ms 7808 KB
subtask_1_19.txt AC 51 ms 7808 KB
subtask_1_20.txt AC 51 ms 7808 KB
subtask_1_21.txt AC 51 ms 7808 KB
subtask_1_22.txt AC 52 ms 7936 KB
subtask_1_23.txt AC 55 ms 12032 KB
subtask_1_24.txt AC 55 ms 13568 KB
subtask_1_25.txt AC 54 ms 7808 KB
subtask_1_26.txt AC 53 ms 9600 KB
subtask_1_27.txt AC 57 ms 13056 KB
subtask_1_28.txt AC 53 ms 7936 KB
subtask_1_29.txt AC 55 ms 13952 KB
subtask_1_30.txt AC 54 ms 12288 KB
subtask_1_31.txt AC 46 ms 7800 KB
subtask_1_32.txt AC 46 ms 7800 KB
subtask_1_33.txt AC 29 ms 7284 KB
subtask_1_34.txt AC 38 ms 8052 KB