Submission #286825


Source Code Expand

#include <iostream>
#include <stdio.h>
#include <set>
#include <map>
#include <list>
#include <vector>
#include <algorithm>
#include <cmath>
#include <limits.h>
#include <string>
#include <queue>
#include <stack>
#include <complex>
#include <stdlib.h>
#include <string.h>
using namespace std;

#define		CAST( T, val )		(T)( val )
#define		CASE( lb )			break; case lb:
#define		CASE_CONTINUE( lb )	case lb:
#define		CASE_DEFAULT		break; default:
#define		For( i, a )			for(int i= 0; i< (int)a; i++)
#define		ForA( i, s, a )		for(int i= (int)s; i< (int)a; i++)
#define		ForSize( i, a )		for(int i= 0, size= (int)a; i< size; i++)
#define		ForSizeA( i, s, a )	for(int i= (int)s, size= (int)a; i< size; i++)
#define		ForItr( itr, con )	for(auto itr= con.begin(); itr!= con.end(); itr++)
#define		ForStr( i, str )	for(int i= 0; str[i]; i++)
typedef		long long		LLint;
typedef		complex<int>	Point;

int N, X;
int H[100];
int Edge[100][100];

int Go(int from, int to){
	int cnt= 0;
	For( i, N ) if( Edge[to][i] ) if( from!= i ){
		cnt+= Go( to, i );
	}

	if( cnt ) return cnt+1;
	if( H[to] ) return 1;
	return 0;
}
int main(){
	cin>> N>> X;X--;
	For( i, N ) cin>> H[i];
	For( i, N-1 ) For( j, N-1 ) Edge[i][j]= 0;
	For( i, N-1 ){
		int A, B;
		cin>> A>> B;
		Edge[A-1][B-1]= 1;
		Edge[B-1][A-1]= 1;
	}

	int cnt= 0;
	For( i, N ) if( Edge[X][i] ){
		cnt+= Go( X, i );
	}

	cout<< cnt*2<< endl;

	return 0;
}

Submission Info

Submission Time
Task B - ツリーグラフ
User BGSC
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1463 Byte
Status AC
Exec Time 23 ms
Memory 932 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 20
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_line01.txt, subtask1_line02.txt, subtask1_line03.txt, subtask1_line04.txt, subtask1_line05.txt, subtask1_line06.txt, subtask1_random01.txt, subtask1_random02.txt, subtask1_random03.txt, subtask1_random04.txt, subtask1_random05.txt, subtask1_random06.txt, subtask1_random07.txt, subtask1_random08.txt, subtask1_special01.txt, subtask1_special02.txt, subtask1_special03.txt, subtask1_special04.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 21 ms 676 KB
subtask0_sample_02.txt AC 21 ms 800 KB
subtask1_line01.txt AC 22 ms 924 KB
subtask1_line02.txt AC 21 ms 796 KB
subtask1_line03.txt AC 22 ms 800 KB
subtask1_line04.txt AC 22 ms 928 KB
subtask1_line05.txt AC 22 ms 928 KB
subtask1_line06.txt AC 22 ms 924 KB
subtask1_random01.txt AC 22 ms 800 KB
subtask1_random02.txt AC 23 ms 924 KB
subtask1_random03.txt AC 22 ms 924 KB
subtask1_random04.txt AC 22 ms 928 KB
subtask1_random05.txt AC 22 ms 932 KB
subtask1_random06.txt AC 22 ms 812 KB
subtask1_random07.txt AC 23 ms 932 KB
subtask1_random08.txt AC 23 ms 736 KB
subtask1_special01.txt AC 22 ms 928 KB
subtask1_special02.txt AC 21 ms 796 KB
subtask1_special03.txt AC 22 ms 932 KB
subtask1_special04.txt AC 23 ms 804 KB