# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1079188 | vjudge1 | Catfish Farm (IOI22_fish) | C++17 | 0 ms | 0 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>
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,
std::vector<int> W) {
long long ok=1,ok1=1;
fore(i,0,M) {
if(X[i] % 2)
ok=0;
if(X[i] > 1)
ok1=0;
}
long long ans=0;
if(ok)
fore(i,0,M)
ans+=W[i];
else if(ok1) {
long long sum1=0,sum2=0;
fore(i,0,M) {
if(X[i] == 0)
sum1+=W[i];
else
sum2+=W[i];
}
ans = max(sum1,sum2);
} else {
long long dp[N+5];
memset(dp,0,sizeof dp);
long long grid[N+5];
memset(grid,0,sizeof grid);
fore(i,0,M)
grid[X[i]] = W[i];
fore(i,0,N) {
dp[i] = grid[i];
if(i > 1)
dp[i] += dp[i-2];
if(i)
dp[i] = max(dp[i],dp[i-1]);
}
ans = dp[n-1];
}
return ans;
return 0;
}