제출 #778749

#제출 시각아이디문제언어결과실행 시간메모리
778749YassirSalamaCatfish Farm (IOI22_fish)C++17
0 / 100
26 ms12492 KiB
#include "fish.h"
#include<bits/stdc++.h>
#include <vector>
using namespace std;
#define all(v) v.begin(),v.end()
const int MAXN=1e5+1000;
long long dp[MAXN][2];//0 last one is not built, 1 last one is built
vector<int> v(MAXN,0);
int n;
int m;
long long solve(int i,int st){
    if(i==MAXN) return 0LL;
    if(dp[i][st]!=-1) return dp[i][st];
    if(v[i]==0){
        return dp[i][0]=dp[i][1]=solve(i+1,1);
    }
    long long mx=0;
    if(st==1){
        mx=max(mx,solve(i+1,0)+v[i]);
        mx=max(mx,solve(i+1,1));
    }else{
        mx=max(mx,solve(i+1,1));
        mx=max(mx,solve(i+2,1)+v[i]);
    }
    return dp[i][st]=mx;
}
long long max_weights(int N, int M, vector<int> X, vector<int> Y,
                      vector<int> W) {
    memset(dp,-1,sizeof(dp));
    for(int i=0;i<M;i++) v[X[i]]+=W[i];
    return solve(0,0);
}
#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...