제출 #1221715

#제출 시각아이디문제언어결과실행 시간메모리
1221715MateiKing80Magic Tree (CEOI19_magictree)C++20
6 / 100
2 ms328 KiB
#include <bits/stdc++.h> using namespace std; const int N = 21; int dp[N][N], timp[N], weight[N]; vector<int> vec[N]; void dfs(int nod) { for (auto i : vec[nod]) dfs(i); for (auto i : vec[nod]) for (int j = 0; j < N; j ++) dp[nod][j] += dp[i][j]; int sus = dp[nod][timp[nod]] + weight[nod]; for (int i = timp[nod]; i < N; i ++) dp[nod][i] = max(dp[nod][i], sus); } signed main() { int n, m, k; cin >> n >> m >> k; for (int i = 2; i <= n; i ++) { int p; cin >> p; vec[p].push_back(i); } for (int i = 0; i < m; i ++) { int v, d, w; cin >> v >> d >> w; timp[v] = d; weight[v] = w; } dfs(1); cout << dp[1][N - 1] << '\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...