Submission #286601


Source Code Expand

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <numeric>
#include <cctype>
#include <tuple>
#include <array>
#include <climits>
#include <bitset>
#include <cassert>
#include <random>

// BEGIN CUT HERE
#ifdef _MSC_VER
#include <agents.h>
#endif
// END CUT HERE 

#define FOR(i, a, b) for(int i = (a); i < (int)(b); ++i)
#define rep(i, n) FOR(i, 0, n)
#define ALL(v) v.begin(), v.end()
#define REV(v) v.rbegin(), v.rend()
#define MEMSET(v, s) memset(v, s, sizeof(v))
#define UNIQUE(v) (v).erase(unique(ALL(v)), (v).end())
#define MP make_pair
#define MT make_tuple

using namespace std;

typedef long long ll;
typedef pair<int, int> P;

int h[110];
int dp[110];
vector<int> G[110];

P dfs(int p, int v){
	P res = MP(0, h[v]);
	for (auto nxt : G[v]){
		if (nxt == p) continue;
		P tmp = dfs(v, nxt);
		if (tmp.second == 0) continue;
		res.first += tmp.first + 2;
		res.second = 1;
	}
	return res;
}

int main(){
	cin.tie(0);
	ios::sync_with_stdio(false);

	int n, x;
	cin >> n >> x;
	--x;
	rep(i, n) cin >> h[i];
	rep(i, n - 1){
		int a, b;
		cin >> a >> b;
		--a, --b;
		G[a].push_back(b);
		G[b].push_back(a);
	}

	cout << dfs(-1, x).first << endl;


	return 0;
}

Submission Info

Submission Time
Task B - ツリーグラフ
User yuusti
Language C++11 (GCC 4.8.1)
Score 100
Code Size 1436 Byte
Status AC
Exec Time 113 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 22 ms 912 KB
subtask0_sample_02.txt AC 23 ms 932 KB
subtask1_line01.txt AC 23 ms 924 KB
subtask1_line02.txt AC 23 ms 796 KB
subtask1_line03.txt AC 23 ms 728 KB
subtask1_line04.txt AC 23 ms 928 KB
subtask1_line05.txt AC 113 ms 756 KB
subtask1_line06.txt AC 23 ms 784 KB
subtask1_random01.txt AC 22 ms 924 KB
subtask1_random02.txt AC 21 ms 920 KB
subtask1_random03.txt AC 21 ms 928 KB
subtask1_random04.txt AC 22 ms 804 KB
subtask1_random05.txt AC 23 ms 760 KB
subtask1_random06.txt AC 23 ms 804 KB
subtask1_random07.txt AC 23 ms 804 KB
subtask1_random08.txt AC 21 ms 804 KB
subtask1_special01.txt AC 21 ms 800 KB
subtask1_special02.txt AC 21 ms 924 KB
subtask1_special03.txt AC 23 ms 932 KB
subtask1_special04.txt AC 22 ms 928 KB