제출 #1326260

#제출 시각아이디문제언어결과실행 시간메모리
1326260aren_danceTricks of the Trade (CEOI23_trade)C++20
5 / 100
8092 ms6260 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]; } vector<int> a(n+1,0); ll answ=-1e18; int l,r; vector<int> an(n+1,0); for(int i=1;i<=n;++i){ multiset<ll> 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+=s[j]; } } if(st.size()==k){ if(answ<cur){ answ=cur; for(int e=1;e<=n;++e){ an[e]=0; } vector<pair<ll,int>> o; for(int e=i;e<=j;++e){ o.push_back({s[e],e}); } sort(o.rbegin(),o.rend()); for(int e=0;e<k;++e){ an[o[e].second]=1; } } if(answ==cur){ vector<pair<ll,int>> o; for(int e=i;e<=j;++e){ o.push_back({s[e],e}); } sort(o.rbegin(),o.rend()); for(int e=0;e<k;++e){ an[o[e].second]=1; } } } } } cout<<answ<<'\n'; 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...