Submission #1145290

#TimeUsernameProblemLanguageResultExecution timeMemory
1145290UnforgettableplHomecoming (BOI18_homecoming)C++20
100 / 100
125 ms94280 KiB
#include "homecoming.h" #include <bits/stdc++.h> using namespace std; long long int solve(int N,int K,int *A,int *B){ vector<long long> DP(N+1),Pa(2*N+1),Pb(2*N+1); for(int i=1;i<=N;i++){Pa[i]=A[i-1];Pb[i]=Pb[i+N]=B[i-1];} for(int i=1;i<=2*N;i++){Pa[i]+=Pa[i-1];Pb[i]+=Pb[i-1];} auto calc = [&](){ long long best = 0; for(int i=1;i<=N;i++){ best = max(best,-Pa[i-1]+Pb[i-1]+DP[i-1]); DP[i]=max(DP[i-1],Pa[i]-Pb[i+K-1]+best); } return DP[N]; }; long long ans = calc(); for(int i=N+1;i<=2*N;i++)Pb[i]=Pb[i-1]; DP[0]=-3e15; return max(ans,calc()); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...