Submission #302569

#TimeUsernameProblemLanguageResultExecution timeMemory
302569milisavBiochips (IZhO12_biochips)C++14
0 / 100
3 ms4992 KiB
#include<bits/stdc++.h> #pragma GCC optimize("O3") #define maxn 200010 #define maxm 510 using namespace std; int n,m; int rt; int p[maxn]; int x[maxn]; vector<int> ch[maxn]; int a[maxn]; int s[maxn]; int dp[maxn][maxm]; int id=0; int tot=0; void dfs(int u) { int cid=id++; a[cid]=x[u]; tot++; for(auto v:ch[u]) dfs(v); s[cid]=id; } int main() { scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d %d",&p[i],&x[i]); if(p[i]==0) rt=i; else ch[p[i]].push_back(i); } dfs(rt); //assert(tot==n); for(int j=1;j<=m;j++) dp[0][j]=-1e9; for(int i=0;i<n;i++) { for(int j=0;j<=m;j++) dp[i+1][j]=max(dp[i+1][j],dp[i][j]); for(int j=0;j<=m-1;j++) dp[s[i]][j+1]=max(dp[s[i]][j+1],dp[i][j]+a[i]); } printf("%d",dp[n][m]); return 0; }

Compilation message (stderr)

biochips.cpp: In function 'int main()':
biochips.cpp:24:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   24 |  scanf("%d %d",&n,&m);
      |  ~~~~~^~~~~~~~~~~~~~~
biochips.cpp:26:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   26 |         scanf("%d %d",&p[i],&x[i]);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...