# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
64129 | Bodo171 | Homecoming (BOI18_homecoming) | C++14 | 59 ms | 8792 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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]=0;
for(i=1;i<=n-k+1;i++)
{
dp[i]=1LL*max(dp[i],dp[i-1]);
dp[i+k-1]=1LL*max(sum[i]+prefmx-(sk[i+k-1]-sk[i]),dp[i+k-1]);
prefmx=1LL*max(prefmx,dp[i]-sum[i]);
}
for(i=1;i<=n;i++)
ans=1LL*max(ans,dp[i]);
if(dp[n]>ans) ans=1LL*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;
}
컴파일 시 표준 에러 (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... |