Submission #1228827

#TimeUsernameProblemLanguageResultExecution timeMemory
1228827Muhammad_AneeqHomecoming (BOI18_homecoming)C++20
Compilation error
0 ms0 KiB
#ifndef __HOMECOMING_H #define __HOMECOMING_H #include <cstdio> #include <cassert> #include <iostream> #include <deque> #include <vector> #include <set> using namespace std; int const NN=2e6+10; long long dp[NN],pre[NN],val[NN]; long long sol(deque<int>a,deque<int>b,int k) { int n=a.size(); pre[0]=0; for (int i=0;i<n;i++) pre[i+1]=pre[i]+b[i]; for (int i=0;i<n;i++) dp[i]=-1e15; dp[0]=a[0]-pre[k]; multiset<long long>s; s.insert(dp[0]+pre[k]); val[0]=dp[0]+pre[k]; long long mx=dp[0]; for (int i=1;i<n;i++) { if (i>=k) s.erase(s.find(val[i-k])); long long sm=pre[min(n,i+k)]-pre[i]; dp[i]=mx; if (s.size()) dp[i]=max(dp[i],*rbegin(s)-pre[i]); dp[i]=dp[i]+a[i]-sm; mx=max(mx,dp[i]); val[i]=dp[i]+pre[min(i+k,n)]; s.insert(val[i]); } return mx; } long long solve(int N, int K, int *A, int *B) { long long ans=0; int n=N; deque<int>a,b; for (int i=0;i<n;i++) a.push_back(A[i]),b.push_back(B[i]); for (int i=0;i<n;i++) { ans=max(ans,sol(a,b,K)); a.push_back(a.front()); a.pop_front(); b.push_back(b.front()); b.pop_front(); } return ans; } int main() { int T; assert(scanf("%d", &T) == 1); for(int t = 0; t < T; t++) { int N, K; assert(scanf("%d%d", &N, &K) == 2); int *A = new int[N]; int *B = new int[N]; for(int i = 0; i < N; i++) assert(scanf("%d", &A[i]) == 1); for(int i = 0; i < N; i++) assert(scanf("%d", &B[i]) == 1); printf("%lld\n", solve(N, K, A, B)); delete[] A; delete[] B; } return 0; } #endif

Compilation message (stderr)

/usr/bin/ld: /tmp/cc13vo7f.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccuajVqA.o:homecoming.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status