Submission #52116664


Source Code Expand

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int n;
int arr[100010];
vector<int> v[100010];
long long sum[100010];
int depth[100010];
long long total;
long long ans;

void dfs(int cur, int prv)
{
	int i;

	sum[cur] = arr[cur];
	for (i = 0; i < v[cur].size(); i++)
	{
		if (v[cur][i] == prv) continue;

		depth[v[cur][i]] = depth[cur] + 1;

		dfs(v[cur][i], cur);

		sum[cur] += sum[v[cur][i]];
	}
}

void dfs2(int cur, int prv, long long val)
{
	int i;

	ans = min(ans, val);

	for (i = 0; i < v[cur].size(); i++)
	{
		if (v[cur][i] == prv) continue;

		dfs2(v[cur][i], cur, val - sum[v[cur][i]] + total - sum[v[cur][i]]);
	}
}

int main()
{
	int i;
	int a, b;
	long long x;

	cin >> n;
	for (i = 0; i < n - 1; i++)
	{
		cin >> a >> b;

		v[a].push_back(b);
		v[b].push_back(a);
	}
	for (i = 1; i <= n; i++)
	{
		cin >> arr[i];

		total += arr[i];
	}

	dfs(1, 0);

	x = 0;
	for (i = 1; i <= n; i++)
	{
		x += 1LL * depth[i] * arr[i];
	}

	ans = x;
	dfs2(1, 0, x);

	cout << ans;
}

Submission Info

Submission Time
Task E - Minimize Sum of Distances
User gojib2002
Language C++ 20 (gcc 12.2)
Score 475
Code Size 1090 Byte
Status AC
Exec Time 82 ms
Memory 16556 KiB

Compile Error

Main.cpp: In function ‘void dfs(int, int)’:
Main.cpp:19:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   19 |         for (i = 0; i < v[cur].size(); i++)
      |                     ~~^~~~~~~~~~~~~~~
Main.cpp: In function ‘void dfs2(int, int, long long int)’:
Main.cpp:37:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
   37 |         for (i = 0; i < v[cur].size(); i++)
      |                     ~~^~~~~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 475 / 475
Status
AC × 3
AC × 31
Set Name Test Cases
Sample example0.txt, example1.txt, example2.txt
All example0.txt, example1.txt, example2.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt
Case Name Status Exec Time Memory
example0.txt AC 1 ms 3436 KiB
example1.txt AC 1 ms 3608 KiB
example2.txt AC 1 ms 3452 KiB
test_00.txt AC 47 ms 7912 KiB
test_01.txt AC 32 ms 6404 KiB
test_02.txt AC 55 ms 8744 KiB
test_03.txt AC 13 ms 4824 KiB
test_04.txt AC 48 ms 8804 KiB
test_05.txt AC 28 ms 6440 KiB
test_06.txt AC 36 ms 8480 KiB
test_07.txt AC 34 ms 9156 KiB
test_08.txt AC 27 ms 7224 KiB
test_09.txt AC 75 ms 10684 KiB
test_10.txt AC 59 ms 10480 KiB
test_11.txt AC 74 ms 10612 KiB
test_12.txt AC 59 ms 10476 KiB
test_13.txt AC 75 ms 10532 KiB
test_14.txt AC 59 ms 10532 KiB
test_15.txt AC 62 ms 10540 KiB
test_16.txt AC 49 ms 10460 KiB
test_17.txt AC 65 ms 10492 KiB
test_18.txt AC 47 ms 10456 KiB
test_19.txt AC 65 ms 10496 KiB
test_20.txt AC 48 ms 10548 KiB
test_21.txt AC 82 ms 16332 KiB
test_22.txt AC 66 ms 16556 KiB
test_23.txt AC 80 ms 15012 KiB
test_24.txt AC 64 ms 14364 KiB
test_25.txt AC 80 ms 15304 KiB
test_26.txt AC 66 ms 15704 KiB
test_27.txt AC 1 ms 3404 KiB