Submission #1233369

#TimeUsernameProblemLanguageResultExecution timeMemory
1233369Tenis0206Tricks of the Trade (CEOI23_trade)C++20
5 / 100
8090 ms7116 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int oo = LLONG_MAX; const int nmax = 3e5; int n, k; int c[nmax + 5], s[nmax + 5]; int r[nmax + 5], poz[nmax + 5]; int cost(int st, int dr) { int rez = 0; vector<int> v; for(int i=st;i<=dr;i++) { rez -= c[i]; v.push_back(s[i]); } sort(v.begin(), v.end(), greater<int>()); for(int i=0;i<k;i++) { rez += v[i]; } return rez; } signed main() { ios::sync_with_stdio(false); cin.tie(0); #ifdef home freopen("nr.in","r",stdin); freopen("nr.out","w",stdout); #endif // home cin>>n>>k; for(int i=1;i<=n;i++) { cin>>c[i]; } for(int i=1;i<=n;i++) { cin>>s[i]; } for(int i=1;i+k-1<=n;i++) { r[i] = -oo; } for(int i=1;i+k-1<=n;i++) { for(int j=max(poz[i - 1], i + k - 1);j<=n;j++) { if(cost(i, j) > r[i]) { poz[i] = j; r[i] = cost(i, j); } } } int rez = -oo; for(int i=1;i+k-1<=n;i++) { rez = max(rez, r[i]); } cout<<rez<<'\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...