Submission #1869923


Source Code Expand

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

typedef long long s64;

inline int getint()
{
	static char c;
	while ((c = getchar()) < '0' || c > '9');

	int res = c - '0';
	while ((c = getchar()) >= '0' && c <= '9')
		res = res * 10 + c - '0';
	return res;
}

const int MaxN = 200000;
const int INF = 0x3f3f3f3f;

int n;
char s[MaxN + 1];

vector<int> adj[MaxN + 1];

int dep[MaxN + 1][3];
int sum[MaxN + 1];

s64 res = 1ll;

int dfs1(const int &u, const int &fa)
{
	sum[u] = s[u] == '1';
	dep[u][0] = s[u] == '1' ? 0 : INF;

	for (int v : adj[u])
		if (v != fa)
		{
			sum[u] += dfs1(v, u);

			int d = dep[v][1] + 1;
			if (d > dep[u][1])
				dep[u][2] = dep[u][1], dep[u][1] = d;
			else if (d > dep[u][2])
				dep[u][2] = d;

			if (sum[v] > 0)
				dep[u][0] = min(dep[u][0], d);
		}

	return sum[u];
}

void dfs2(const int &u, const int &fa)
{
	for (int v : adj[u])
		if (v != fa)
		{
			int d = dep[u][dep[v][1] + 1 == dep[u][1] ? 2 : 1] + 1;
			if (d > dep[v][1])
				dep[v][2] = dep[v][1], dep[v][1] = d;
			else if (d > dep[v][2])
				dep[v][2] = d;

			if (sum[v] < sum[1])
				dep[v][0] = min(dep[v][0], d);

			dfs2(v, u);
		}

	int up = min(dep[u][1] - 1, dep[u][2] + 1);
	if (up >= dep[u][0])
		res += up - dep[u][0] + 1;
}

int main()
{
	cin >> n;
	for (int i = 1; i < n; ++i)
	{
		int u = getint(), v = getint();
		adj[u].push_back(v);
		adj[v].push_back(u);
	}

	scanf("%s", s + 1);

	dfs1(1, 0);
	dfs2(1, 0);

	cout << res << endl;

	return 0;
}

Submission Info

Submission Time
Task F - Black Radius
User InvUsr
Language C++14 (GCC 5.4.1)
Score 1900
Code Size 1631 Byte
Status AC
Exec Time 107 ms
Memory 24064 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:89:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", s + 1);
                    ^

Judge Result

Set Name Sample Subtask All
Score / Max Score 0 / 0 1300 / 1300 600 / 600
Status
AC × 3
AC × 31
AC × 81
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt
Subtask 0_01.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt, 2_13.txt, 2_14.txt, 2_15.txt, 2_16.txt, 2_17.txt, 2_18.txt, 2_19.txt, 2_20.txt, 2_21.txt, 2_22.txt, 2_23.txt, 2_24.txt, 2_25.txt, 2_26.txt, 2_27.txt, 2_28.txt, 2_29.txt, 2_30.txt, 2_31.txt, 2_32.txt, 2_33.txt, 2_34.txt, 2_35.txt, 2_36.txt, 2_37.txt, 2_38.txt, 2_39.txt, 2_40.txt, 2_41.txt, 2_42.txt, 2_43.txt, 2_44.txt, 2_45.txt, 2_46.txt, 2_47.txt
Case Name Status Exec Time Memory
0_00.txt AC 3 ms 6016 KB
0_01.txt AC 3 ms 6016 KB
0_02.txt AC 3 ms 6016 KB
1_00.txt AC 3 ms 6016 KB
1_01.txt AC 102 ms 24064 KB
1_02.txt AC 94 ms 20608 KB
1_03.txt AC 95 ms 14592 KB
1_04.txt AC 67 ms 14840 KB
1_05.txt AC 49 ms 15348 KB
1_06.txt AC 74 ms 14720 KB
1_07.txt AC 76 ms 14720 KB
1_08.txt AC 78 ms 15488 KB
1_09.txt AC 86 ms 19328 KB
1_10.txt AC 82 ms 18560 KB
1_11.txt AC 92 ms 23936 KB
1_12.txt AC 77 ms 16640 KB
1_13.txt AC 91 ms 18944 KB
1_14.txt AC 79 ms 16512 KB
1_15.txt AC 78 ms 15616 KB
1_16.txt AC 93 ms 17152 KB
1_17.txt AC 92 ms 18304 KB
1_18.txt AC 84 ms 14592 KB
1_19.txt AC 76 ms 14592 KB
1_20.txt AC 79 ms 14592 KB
1_21.txt AC 79 ms 15232 KB
1_22.txt AC 68 ms 14844 KB
1_23.txt AC 81 ms 14716 KB
1_24.txt AC 77 ms 15360 KB
1_25.txt AC 70 ms 16248 KB
1_26.txt AC 68 ms 14588 KB
1_27.txt AC 65 ms 14968 KB
1_28.txt AC 59 ms 15352 KB
1_29.txt AC 80 ms 16892 KB
2_00.txt AC 3 ms 6016 KB
2_01.txt AC 107 ms 23680 KB
2_02.txt AC 91 ms 22144 KB
2_03.txt AC 99 ms 21760 KB
2_04.txt AC 98 ms 19072 KB
2_05.txt AC 89 ms 19200 KB
2_06.txt AC 90 ms 19968 KB
2_07.txt AC 78 ms 14592 KB
2_08.txt AC 80 ms 14592 KB
2_09.txt AC 81 ms 14592 KB
2_10.txt AC 64 ms 14840 KB
2_11.txt AC 68 ms 14840 KB
2_12.txt AC 63 ms 14840 KB
2_13.txt AC 52 ms 15348 KB
2_14.txt AC 48 ms 15348 KB
2_15.txt AC 51 ms 15348 KB
2_16.txt AC 74 ms 14720 KB
2_17.txt AC 74 ms 14720 KB
2_18.txt AC 74 ms 14720 KB
2_19.txt AC 74 ms 14720 KB
2_20.txt AC 76 ms 14720 KB
2_21.txt AC 75 ms 14720 KB
2_22.txt AC 77 ms 15360 KB
2_23.txt AC 78 ms 15872 KB
2_24.txt AC 82 ms 15744 KB
2_25.txt AC 83 ms 19712 KB
2_26.txt AC 82 ms 18688 KB
2_27.txt AC 85 ms 19584 KB
2_28.txt AC 79 ms 18304 KB
2_29.txt AC 98 ms 22528 KB
2_30.txt AC 88 ms 21120 KB
2_31.txt AC 89 ms 18304 KB
2_32.txt AC 76 ms 14976 KB
2_33.txt AC 82 ms 16640 KB
2_34.txt AC 83 ms 18048 KB
2_35.txt AC 88 ms 20096 KB
2_36.txt AC 77 ms 14464 KB
2_37.txt AC 79 ms 14592 KB
2_38.txt AC 77 ms 15488 KB
2_39.txt AC 85 ms 14720 KB
2_40.txt AC 67 ms 14840 KB
2_41.txt AC 72 ms 14720 KB
2_42.txt AC 63 ms 14712 KB
2_43.txt AC 92 ms 19200 KB
2_44.txt AC 62 ms 14840 KB
2_45.txt AC 55 ms 15096 KB
2_46.txt AC 55 ms 15348 KB
2_47.txt AC 74 ms 17400 KB