제출 #982733

#제출 시각아이디문제언어결과실행 시간메모리
982733vjudge1Chase (CEOI17_chase)C++17
0 / 100
4014 ms7248 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int n, v, res = 0, x, y; bool flag; vector<int> a; vector<vector<int>> graph; void dfs(int i, int j, int p, int sum, int sus, int len) { if(len > v) return; sum += a[i]; //sus += a[i]; for(int k : graph[i]) { if(k != p) sum += a[k]; } //if(flag) cout << i << " " << j << " " << p << " " << sum << " " << sus << " " << len << "\n"; if(i == j) { //if(flag) cout << sum - sus << "\n"; res = max(res, sum - sus); return; } for(int k : graph[i]) { if(k != p) dfs(k, j, i, sum - a[k], sus, len + 1); } } signed main() { cin >> n >> v; a = vector<int>(n), graph = vector<vector<int>>(n); for(int i = 0; i < n; i++) cin >> a[i]; for(int i = 0; i < n - 1; i++) { cin >> x >> y; x--, y--; graph[x].push_back(y); graph[y].push_back(x); } // for(int i = 0; i < n; i++) { for(int j = i + 1; j < n; j++) { dfs(i, j, -1, 0, a[i], 1); } } // cout << res << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...