Submission #1299994

#TimeUsernameProblemLanguageResultExecution timeMemory
1299994azik21Biochips (IZhO12_biochips)C++20
0 / 100
4 ms580 KiB
#include<iostream>
// #include<bits/stdc++.h>
#include<algorithm>
#include<set>
#include<map>
#include<vector>
#include<queue>
#define pb push_back
#define int long long 
#define all(v) (v).begin() , (v).end()
using namespace std;
const int inf = 1e17 , N = 5e5 + 4;
int n , m ;
int x[N];
int dp[N][505];
vector<int>g[N];
void dfs(int v , int p){
    for(auto it:g[v]){
        if(it==p)continue;
        dfs(it ,  v);
        for(int k  =1 ; k <= m ; k++){
            for(int i= 0; i + k  <= m ;i++){
                dp[v][i+k] = max(dp[v][i] + dp[it][k] , dp[v][i+k]);
            }
        }
    }
        dp[v][1] = max(x[v] , dp[v][1]);
}
signed main(){
    freopen("d.in" , "r" , stdin);
    freopen("d.out" , "w" , stdout);
    ios_base::sync_with_stdio(0) , cin.tie(0);
    cin >> n >> m ;
    int pr = 0;
    for(int i= 1 ; i <= n ; i++){
        int p ;
        cin >> p >> x[i] ;
        if(p == 0 )pr = i ;
        g[p].pb(i);
    }
    dfs(pr ,0 );
    cout << dp[pr][m];
}

Compilation message (stderr)

biochips.cpp: In function 'int main()':
biochips.cpp:30:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     freopen("d.in" , "r" , stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
biochips.cpp:31:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |     freopen("d.out" , "w" , stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...