# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
64122 | Bodo171 | Homecoming (BOI18_homecoming) | C++14 | 53 ms | 8672 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 "homecoming.h"
#include <iostream>
using namespace std;
const int nmax=5005;
long long dp[nmax],sum[nmax],sk[nmax],C[nmax];
long long ans,prefmx;
int i,n,rot,k,aux1,aux2;
void solve()
{
prefmx=0;
for(i=1;i<=n;i++)
{
dp[i]=max(dp[i],dp[i-1]);
dp[i+k-1]=max(sum[i]+prefmx-(sk[i+k-1]-sk[i]),dp[i+k-1]);
prefmx=max(prefmx,dp[i]-sum[i]);
}
if(dp[n]>ans) ans=dp[n];
}
long long solve(int N, int K, int *A, int *B)
{
for(i=0;i<N;i++)
ans+=1LL*(A[i]-B[i]);
n=N,k=K;
for(rot=1;rot<=N;rot++)
{
for(i=1;i<=N;i++)
{
C[i]=A[i-1]-B[i-1];
sk[i]=1LL*sk[i-1]+B[i-1];
sum[i]=1LL*C[i]+sum[i-1];
}
solve();
aux1=A[0];aux2=B[0];
for(i=0;i<N-1;i++)
A[i]=A[i+1],B[i]=B[i+1];
A[N-1]=aux1;B[N-1]=aux2;
}
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... |