Submission #1227878

#TimeUsernameProblemLanguageResultExecution timeMemory
1227878Muhammad_AneeqHomecoming (BOI18_homecoming)C++20
0 / 100
161 ms327680 KiB
#include <iostream> using namespace std; long long solve(int N, int K, int *A, int *B) { int n=N; long long dp[N+10][N+10]={}; long long pre[2*N+10]={}; for (int i=0;i<2*N;i++) pre[i+1]=pre[i]+B[i%N]; for (int i=0;i<N;i++) for (int j=0;j<N;j++) dp[i][j]=-1e15; long long ans=0; for (int i=0;i<N;i++) { dp[i][i]=A[i]-(pre[i+K]-pre[i]); ans=max(ans,dp[i][i]); } for (int i=0;i<n;i++) { for (int j=i;j<n;j++) { for (int k=j+1;k<n;k++) { int l=k,r=k+K; l=max(l,j+K); r=min(r,i+n); int sm=0; if (r>=l) sm=pre[r]-pre[l]; dp[i][k]=max(dp[i][k],dp[i][j]-sm+A[k]); ans=max(ans,dp[i][k]); } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...