Submission #64122

#TimeUsernameProblemLanguageResultExecution timeMemory
64122Bodo171Homecoming (BOI18_homecoming)C++14
0 / 100
53 ms8672 KiB
#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)

homecoming.cpp: In function 'long long int solve(int, int, int*, int*)':
homecoming.cpp:21:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
     for(i=0;i<N;i++)
     ^~~
homecoming.cpp:23:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
         n=N,k=K;
         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...