Submission #856507

#TimeUsernameProblemLanguageResultExecution timeMemory
856507aykhnBiochips (IZhO12_biochips)C++14
10 / 100
2078 ms258000 KiB
#include <bits/stdc++.h> // author : aykhn using namespace std; typedef long long ll; #define pb push_back #define ins insert #define mpr make_pair #define all(v) v.begin(), v.end() #define bpc __builtin_popcount #define pii pair<int, int> #define pll pair<ll, ll> #define fi first #define se second #define int ll #define infll 0x3F3F3F3F3F3F3F3F #define inf 0x3F3F3F3F const int MXN = 2e5 + 5; const int MXM = 5e2 + 5; int n, m, r; vector<int> adj[MXN]; int p[MXN], c[MXN]; int dp[MXN][MXM]; void dfs(int a) { for (int v : adj[a]) dfs(v); int n1 = adj[a].size(); vector<vector<int>> dp1(n1 + 1, vector<int> (m + 1, 0)); for (int i = 1; i <= adj[a].size(); i++) { int v = adj[a][i - 1]; for (int j = 1; j <= m; j++) { for (int k = 0; k <= j; k++) { dp1[i][j] = max(dp1[i][j], dp1[i - 1][j - k] + dp[v][k]); } } } dp[a][1] = max(c[a], dp[a][1]); for (int i = 2; i <= m; i++) dp[a][i] = dp1[n1][i]; } signed main() { cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> p[i] >> c[i]; if (!p[i]) { r = i; continue; } adj[p[i]].pb(i); } dfs(r); cout << dp[r][m] << '\n'; }

Compilation message (stderr)

biochips.cpp: In function 'void dfs(ll)':
biochips.cpp:34:23: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |     for (int i = 1; i <= adj[a].size(); i++)
      |                     ~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...