# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
626002 | sword060 | Catfish Farm (IOI22_fish) | C++17 | 77 ms | 6724 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 <bits/stdc++.h>
#include "fish.h"
using namespace std;
long long max_weights(int x,int k,vector<int> a,vector<int> b,vector<int> c){
vector<pair<int,int>>l[2];
long long ans=0,cur=0,cur2=0;
bool f=1;
for(int i=0;i<k;i++){
l[a[i]%2].push_back({b[i],c[i]});
if(a[i]%2)cur+=c[i];
else cur2+=c[i];
f&=(b[i]==0);
}
if(f){
long long dp[x+1];
for(int i=0;i<x;i++)dp[i]=0;
for(int i=0;i<k;i++)dp[a[i]]+=c[i];
for(int i=0;i<x;i++){
if(i<x-1&&i>0)dp[i]+=max(dp[i-1],dp[i+1]);
if(i>2)dp[i]+=max(dp[i-2],dp[i-3]);
else if(i>1)dp[i]+=dp[i-2];
ans=max(ans,dp[i]);
}
return ans;
}
sort(l[0].begin(),l[0].end());
sort(l[1].begin(),l[1].end());
ans=cur;
if(x<=2){
return max(cur,cur2);
}
int j=0;
for(int i=0;i<(int)l[0].size();i++){
cur+=l[0][i].second;
while(j<l[1].size()&&l[1][j].first<=l[0][i].first){
cur-=l[1][j].second;
j++;
}
ans=max(ans,cur);
}
return ans;
}
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... |