Submission #1326247

#TimeUsernameProblemLanguageResultExecution timeMemory
1326247aren_danceTricks of the Trade (CEOI23_trade)C++20
0 / 100
8086 ms4200 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N=5e5+1; ll c[N]; ll s[N]; void upsolve(){ int n,k; cin>>n>>k; for(int i=1;i<=n;++i){ cin>>c[i]; } for(int i=1;i<=n;++i){ cin>>s[i]; } ll answ=-1e18; int l,r; for(int i=1;i<=n;++i){ multiset<int> st; ll cur=0ll; for(int j=i;j<=n;++j){ cur-=c[j]; if(st.size()<k){ st.insert(s[j]); cur+=s[j]; } else{ if(*st.begin()<s[j]){ cur-=*st.begin(); st.erase(st.begin()); st.insert(s[j]); cur+=*st.begin(); } } if(st.size()>=k){ if(answ<cur){ answ=cur; l=i; r=j; } } } } cout<<answ<<'\n'; vector<pair<ll,int>> o; for(int i=l;i<=r;++i){ o.push_back({s[i],i}); } sort(o.rbegin(),o.rend()); vector<int> an(n+1,0); for(int i=0;i<k;++i){ an[o[i].second]=1; } for(int i=1;i<=n;++i){ cout<<an[i]; } } int main() { int t; t=1; while(t--){ upsolve(); } 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...