# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
673379 | 2022-12-20T12:52:12 Z | smartmonky | Biochips (IZhO12_biochips) | C++14 | 2000 ms | 70436 KB |
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define int long long using namespace std; void fp(string name){freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout);} const int N = 200005; vector <int> g[N]; int coast[N], dp[505][N]; int m; void dfs(int v){ for(auto to : g[v]){ dfs(to); for(int i = m; i >= 0; i--){ for(int j = m - i; j >= 0; j--){ if(i + j <= m) dp[i + j][v] = max(dp[i][v] + dp[j][to], dp[i + j][v]); } } } dp[1][v] = max(dp[1][v], coast[v]); } main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //fp("game"); int n; cin >> n >> m; int ind = -1; for(int i = 0; i < n; i++){ int a, b; cin >> a >> b; coast[i + 1] = b; if(a == 0){ ind = i + 1; continue; } g[a].pb(i + 1); } dfs(ind); cout << dp[m][ind]; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 4948 KB | Output is correct |
2 | Correct | 3 ms | 4948 KB | Output is correct |
3 | Correct | 3 ms | 5076 KB | Output is correct |
4 | Correct | 34 ms | 9900 KB | Output is correct |
5 | Correct | 81 ms | 11816 KB | Output is correct |
6 | Correct | 126 ms | 13756 KB | Output is correct |
7 | Execution timed out | 2084 ms | 70436 KB | Time limit exceeded |
8 | Execution timed out | 2072 ms | 64452 KB | Time limit exceeded |
9 | Execution timed out | 2076 ms | 12532 KB | Time limit exceeded |
10 | Execution timed out | 2084 ms | 13288 KB | Time limit exceeded |