Submission #1325243

#TimeUsernameProblemLanguageResultExecution timeMemory
1325243eri16Catfish Farm (IOI22_fish)C++20
12 / 100
48 ms7248 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W){
    bool evn=true;
    bool lwr=true;
    ll sm1=0;
    ll sm2=0;
    
    for (int i=0; i<M; i++){
        if (X[i]%2){evn=false;sm1+=W[i];}
        else{sm2+=W[i];}
        if (X[i]>1){lwr=false;}
    }
    
    if (evn){return (sm1+sm2);}
    if (lwr){return max(sm1,sm2);}
    
    vector <int> w(N,0);
    
    for (int i=0; i<M; i++){w[X[i]]=W[i];}
    
    ll dp[N][2];
    
    dp[0][0]=0;
    dp[0][1]=0;
    dp[1][0]=w[1];
    dp[1][1]=w[0];
    
    for (int i=2; i<N; i++){
        dp[i][0]=max(dp[i-1][0],dp[i-1][1]+w[i]);
        
        dp[i][1]=max({dp[i-1][0],dp[i-1][1],dp[i-2][0]+w[i-1]});
    }
    
    return max(dp[N-1][0],dp[N-1][1]);
}
#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...