Submission #3879048


Source Code Expand

#include <stdio.h>  
#include <algorithm>  
#include <assert.h>
#include <bitset>
#include <cmath>  
#include <complex>  
#include <deque>  
#include <functional>  
#include <iostream>  
#include <limits.h>  
#include <map>  
#include <math.h>  
#include <queue>  
#include <set>  
#include <stdlib.h>  
#include <string.h>  
#include <string>  
#include <time.h>  
#include <unordered_map>  
#include <unordered_set>  
#include <vector>  

#pragma warning(disable:4996)  
#pragma comment(linker, "/STACK:336777216")  
using namespace std;

#define mp make_pair  
#define Fi first  
#define Se second  
#define pb(x) push_back(x)  
#define szz(x) ((int)(x).size())  
#define rep(i, n) for(int i=0;i<n;i++)  
#define all(x) (x).begin(), (x).end()  
#define ldb ldouble  

typedef unsigned int uint;
typedef tuple<int, int, int> t3;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
typedef pair <ll, int> pli;
typedef pair <db, db> pdd;

int IT_MAX = 1 << 19;
const ll MOD = 1000000007;
const int INF = 0x3f3f3f3f;
const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
const db PI = acos(-1);
const db ERR = 1e-10;

const int MX = 100005;

set<int> T[MX];
int chk[MX];
char C[MX];

pii dfs(int x, int p){
	pii r = pii(0, 0);
	int cur = (T[x].size()%2 == 0) != (C[x] == 'B');
	for(int c : T[x]){
		if(c == p) continue;
		pii t = dfs(c, x);	
		r.first = max({r.first, t.first, r.second + t.second + cur});
		r.second = max(r.second, t.second);
	}
	r.second += cur;
	return r;
}

int main()
{
	int N;
	scanf("%d", &N);
	for(int i = 1; i < N; i++){
		int a, b;
		scanf("%d%d", &a, &b);
		T[a].insert(b);
		T[b].insert(a);
	}
	scanf("%s", C+1);
	queue<int> Q;
	for(int i = 1; i <= N; i++) if(T[i].size() == 1) Q.push(i);
	while(Q.size()){
		int p = Q.front(); Q.pop();
		if(C[p] == 'W') continue;
		chk[p] = 1;
		int n = *T[p].begin();
		T[p].clear();
		T[n].erase(p);
		if(T[n].size() == 1) Q.push(n);
	}
	int r = 0;
	for(int i = 1; i <= N; i++) if(!chk[i]) r = i;
	if(r == 0) return !printf("0\n");

	int ans = -2;
	for(int i = 1; i <= N; i++){
		if(!chk[i]) ans += 2;
		if((T[i].size()%2 == 0) != (C[i] == 'B')) ans++;
	}
	pii t = dfs(r, -1);
	ans -= t.first * 2;
	printf("%d\n", ans);
}

Submission Info

Submission Time
Task F - Monochrome Cat
User zigui
Language C++14 (GCC 5.4.1)
Score 800
Code Size 2380 Byte
Status AC
Exec Time 95 ms
Memory 21760 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:76:17: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &N);
                 ^
./Main.cpp:79:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &a, &b);
                        ^
./Main.cpp:83:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", C+1);
                  ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 4
AC × 118
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 0_003.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt, 1_036.txt, 1_037.txt, 1_038.txt, 1_039.txt, 1_040.txt, 1_041.txt, 1_042.txt, 1_043.txt, 1_044.txt, 1_045.txt, 1_046.txt, 1_047.txt, 1_048.txt, 1_049.txt, 1_050.txt, 1_051.txt, 1_052.txt, 1_053.txt, 1_054.txt, 1_055.txt, 1_056.txt, 1_057.txt, 1_058.txt, 1_059.txt, 1_060.txt, 1_061.txt, 1_062.txt, 1_063.txt, 1_064.txt, 1_065.txt, 1_066.txt, 1_067.txt, 1_068.txt, 1_069.txt, 1_070.txt, 1_071.txt, 1_072.txt, 1_073.txt, 1_074.txt, 1_075.txt, 1_076.txt, 1_077.txt, 1_078.txt, 1_079.txt, 1_080.txt, 1_081.txt, 1_082.txt, 1_083.txt, 1_084.txt, 1_085.txt, 1_086.txt, 1_087.txt, 1_088.txt, 1_089.txt, 1_090.txt, 1_091.txt, 1_092.txt, 1_093.txt, 1_094.txt, 1_095.txt, 1_096.txt, 1_097.txt, 1_098.txt, 1_099.txt, 1_100.txt, 1_101.txt, 1_102.txt, 1_103.txt, 1_104.txt, 1_105.txt, 1_106.txt, 1_107.txt, 1_108.txt, 1_109.txt, 1_110.txt, 1_111.txt, 1_112.txt, 1_113.txt, 1_114.txt, 1_115.txt, 1_116.txt
Case Name Status Exec Time Memory
0_000.txt AC 4 ms 4992 KiB
0_001.txt AC 4 ms 4992 KiB
0_002.txt AC 4 ms 4992 KiB
0_003.txt AC 4 ms 4992 KiB
1_003.txt AC 4 ms 4992 KiB
1_004.txt AC 4 ms 4992 KiB
1_005.txt AC 4 ms 4992 KiB
1_006.txt AC 4 ms 4992 KiB
1_007.txt AC 4 ms 4992 KiB
1_008.txt AC 4 ms 4992 KiB
1_009.txt AC 4 ms 4992 KiB
1_010.txt AC 4 ms 4992 KiB
1_011.txt AC 4 ms 4992 KiB
1_012.txt AC 4 ms 4992 KiB
1_013.txt AC 4 ms 4992 KiB
1_014.txt AC 4 ms 4992 KiB
1_015.txt AC 4 ms 4992 KiB
1_016.txt AC 4 ms 4992 KiB
1_017.txt AC 4 ms 4992 KiB
1_018.txt AC 4 ms 4992 KiB
1_019.txt AC 4 ms 4992 KiB
1_020.txt AC 4 ms 4992 KiB
1_021.txt AC 4 ms 4992 KiB
1_022.txt AC 4 ms 4992 KiB
1_023.txt AC 4 ms 4992 KiB
1_024.txt AC 4 ms 4992 KiB
1_025.txt AC 4 ms 4992 KiB
1_026.txt AC 3 ms 4992 KiB
1_027.txt AC 4 ms 4992 KiB
1_028.txt AC 4 ms 4992 KiB
1_029.txt AC 4 ms 4992 KiB
1_030.txt AC 4 ms 4992 KiB
1_031.txt AC 4 ms 4992 KiB
1_032.txt AC 4 ms 4992 KiB
1_033.txt AC 4 ms 4992 KiB
1_034.txt AC 4 ms 4992 KiB
1_035.txt AC 4 ms 4992 KiB
1_036.txt AC 4 ms 4992 KiB
1_037.txt AC 4 ms 4992 KiB
1_038.txt AC 4 ms 4992 KiB
1_039.txt AC 4 ms 4992 KiB
1_040.txt AC 4 ms 4992 KiB
1_041.txt AC 4 ms 4992 KiB
1_042.txt AC 4 ms 4992 KiB
1_043.txt AC 4 ms 4992 KiB
1_044.txt AC 4 ms 4992 KiB
1_045.txt AC 22 ms 9728 KiB
1_046.txt AC 26 ms 11008 KiB
1_047.txt AC 49 ms 14592 KiB
1_048.txt AC 38 ms 12288 KiB
1_049.txt AC 41 ms 15104 KiB
1_050.txt AC 38 ms 14208 KiB
1_051.txt AC 54 ms 12416 KiB
1_052.txt AC 15 ms 6912 KiB
1_053.txt AC 67 ms 13696 KiB
1_054.txt AC 26 ms 8448 KiB
1_055.txt AC 57 ms 12288 KiB
1_056.txt AC 36 ms 9728 KiB
1_057.txt AC 4 ms 5120 KiB
1_058.txt AC 28 ms 11264 KiB
1_059.txt AC 22 ms 8448 KiB
1_060.txt AC 45 ms 12416 KiB
1_061.txt AC 51 ms 15872 KiB
1_062.txt AC 29 ms 11008 KiB
1_063.txt AC 39 ms 10752 KiB
1_064.txt AC 30 ms 9216 KiB
1_065.txt AC 7 ms 5504 KiB
1_066.txt AC 66 ms 13056 KiB
1_067.txt AC 13 ms 6656 KiB
1_068.txt AC 37 ms 10112 KiB
1_069.txt AC 16 ms 7424 KiB
1_070.txt AC 28 ms 9600 KiB
1_071.txt AC 53 ms 13312 KiB
1_072.txt AC 33 ms 10112 KiB
1_073.txt AC 8 ms 5760 KiB
1_074.txt AC 6 ms 5504 KiB
1_075.txt AC 25 ms 9088 KiB
1_076.txt AC 72 ms 14720 KiB
1_077.txt AC 64 ms 13056 KiB
1_078.txt AC 20 ms 7936 KiB
1_079.txt AC 24 ms 8960 KiB
1_080.txt AC 29 ms 9728 KiB
1_081.txt AC 61 ms 18560 KiB
1_082.txt AC 71 ms 19840 KiB
1_083.txt AC 50 ms 14848 KiB
1_084.txt AC 51 ms 14848 KiB
1_085.txt AC 62 ms 19200 KiB
1_086.txt AC 61 ms 21760 KiB
1_087.txt AC 75 ms 14848 KiB
1_088.txt AC 80 ms 15232 KiB
1_089.txt AC 79 ms 15232 KiB
1_090.txt AC 79 ms 15232 KiB
1_091.txt AC 74 ms 14848 KiB
1_092.txt AC 79 ms 15232 KiB
1_093.txt AC 57 ms 16768 KiB
1_094.txt AC 60 ms 17408 KiB
1_095.txt AC 95 ms 14976 KiB
1_096.txt AC 62 ms 14976 KiB
1_097.txt AC 57 ms 16768 KiB
1_098.txt AC 68 ms 18432 KiB
1_099.txt AC 65 ms 14720 KiB
1_100.txt AC 70 ms 15104 KiB
1_101.txt AC 82 ms 15104 KiB
1_102.txt AC 81 ms 15104 KiB
1_103.txt AC 65 ms 14720 KiB
1_104.txt AC 73 ms 15104 KiB
1_105.txt AC 56 ms 14592 KiB
1_106.txt AC 58 ms 14976 KiB
1_107.txt AC 65 ms 14976 KiB
1_108.txt AC 65 ms 14976 KiB
1_109.txt AC 54 ms 14592 KiB
1_110.txt AC 59 ms 14976 KiB
1_111.txt AC 55 ms 14592 KiB
1_112.txt AC 57 ms 14976 KiB
1_113.txt AC 66 ms 14976 KiB
1_114.txt AC 64 ms 14976 KiB
1_115.txt AC 55 ms 14592 KiB
1_116.txt AC 59 ms 14976 KiB