답안 #121585

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
121585 2019-06-26T19:45:29 Z sofhiasouza Chase (CEOI17_chase) C++14
40 / 100
1496 ms 1408 KB
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
typedef long long int ll;

const int maxn = 1e3+10;

int n, v, vet[maxn];
ll dp[maxn][110];

vector < int > grafo[maxn];

ll dfs(int u, int val, int pai)
{
	if(val == 0) return 0;
	if(dp[u][val]) return dp[u][val];

	ll resp1 = 0, resp2 = 0, cont = 0;
	for(int i = 0 ; i < grafo[u].size() ; i++)
	{
		int v = grafo[u][i];
		if(v == pai) continue;

		cont += vet[v];
		resp1 = max(resp1, dfs(v, val-1, u));
		resp2 = max(resp2, dfs(v, val, u));
	}

	resp1 += cont;

	return dp[u][val] = max(resp1, resp2);
}

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

	cin >> n >> v;
	
	for(int i = 1 ; i <= n ; i++) cin >> vet[i];

	for(int i = 0 ; i < n-1 ; i++)
	{
		int a, b;
		cin >> a >> b;
		grafo[a].pb(b);
		grafo[b].pb(a);
	}

	ll resp = dfs(1, v, 0);

	if(n <= 1000)
	{
		for(int i = 2 ; i <= n ; i++)
		{
			memset(dp, 0, sizeof dp);
			resp = max(resp, dfs(i, v, 0));
		}
	}

	cout << resp << endl;
}

Compilation message

chase.cpp: In function 'll dfs(int, int, int)':
chase.cpp:19:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0 ; i < grafo[u].size() ; i++)
                  ~~^~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1280 KB Output is correct
2 Correct 3 ms 1280 KB Output is correct
3 Correct 3 ms 1280 KB Output is correct
4 Correct 3 ms 1280 KB Output is correct
5 Correct 3 ms 1280 KB Output is correct
6 Correct 3 ms 1280 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1280 KB Output is correct
2 Correct 3 ms 1280 KB Output is correct
3 Correct 3 ms 1280 KB Output is correct
4 Correct 3 ms 1280 KB Output is correct
5 Correct 3 ms 1280 KB Output is correct
6 Correct 3 ms 1280 KB Output is correct
7 Correct 1496 ms 1356 KB Output is correct
8 Correct 131 ms 1408 KB Output is correct
9 Correct 71 ms 1332 KB Output is correct
10 Correct 244 ms 1280 KB Output is correct
11 Correct 231 ms 1332 KB Output is correct
12 Correct 197 ms 1400 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 3 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1280 KB Output is correct
2 Correct 3 ms 1280 KB Output is correct
3 Correct 3 ms 1280 KB Output is correct
4 Correct 3 ms 1280 KB Output is correct
5 Correct 3 ms 1280 KB Output is correct
6 Correct 3 ms 1280 KB Output is correct
7 Correct 1496 ms 1356 KB Output is correct
8 Correct 131 ms 1408 KB Output is correct
9 Correct 71 ms 1332 KB Output is correct
10 Correct 244 ms 1280 KB Output is correct
11 Correct 231 ms 1332 KB Output is correct
12 Correct 197 ms 1400 KB Output is correct
13 Runtime error 3 ms 640 KB Execution killed with signal 11 (could be triggered by violating memory limits)
14 Halted 0 ms 0 KB -