# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
626600 | whynotshadow | Catfish Farm (IOI22_fish) | C++17 | 87 ms | 7288 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=3e5+9;
const ll INF=1e9;
ll used[N];
ll dp[N][3];
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
ll ans=0,cnt=0,cntt=0,cnt2=0,sum1=0,sum2=0;
for(auto to:W){
ans+=to;
}
for(auto to:X){
if(to&1) cnt++;
if(to<=1) cntt++;
}
for(auto to:Y){
if(to==0) cnt2++;
}
if(cnt==0) return ans;
else if(cnt2==M){
for(ll i=0; i<N; i++){
used[i]=0;
dp[i][0]=dp[i][1]=0;
}
for(ll i=0;i<M;i++){
used[X[i]]=W[i];
}
dp[-1][0]=dp[-1][1]=0;
/// 0 - used, 1 - free
for(ll i=0;i<N;i++){
if(i==0){
dp[i][0]=used[i+1],dp[i][1]=0;
continue;
}
else{
dp[i][0]=max({dp[i-1][0]-used[i],dp[i-2][0]+used[i-1],dp[i-2][1]})+used[i+1];
dp[i][1]=max(dp[i-1][1],dp[i-1][0]);
}
}
return max(dp[N-1][1],dp[N-1][0]);
}
else if(cntt==M){
for(ll i=0; i<M; i++){
if(X[i]==0) sum1+=W[i];
else sum2+=W[i];
}
return max(sum1,sum2);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |