Submission #1071849

#TimeUsernameProblemLanguageResultExecution timeMemory
1071849edogawa_somethingTricks of the Trade (CEOI23_trade)C++17
10 / 100
513 ms760 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vii; typedef pair<ll,ll> pii; #define F first #define S second #define all(v) v.begin(),v.end() #define pb push_back const ll M=6e3+10; const ll inf=2e18; ll n,k,a[M],b[M],c[M]; int main() { ios_base::sync_with_stdio(0),cin.tie(0); cin>>n>>k; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) cin>>b[i]; ll ans=-inf; ll l,r; for(int i=0;i<n;i++) { ll nsum=0,psum=0; priority_queue<ll,vii,greater<ll>>q; for(int j=i;j<n;j++) { nsum+=a[j]; if(q.size()<k) q.push(b[j]),psum+=b[j]; else { if(b[j]<q.top()) continue; else psum-=q.top(),q.pop(),q.push(b[j]),psum+=b[j]; } if(q.size()==k) { if(ans<psum-nsum) { ans=max(ans,psum-nsum); l=i,r=j; } } } } ll cur=0; ans=0; for(int i=l;i<=r;i++) ans-=a[i]; for(int j=0;j<k;j++) { cur=0; ll ind=0; for(int i=l;i<=r;i++) { if(b[i]>=cur) cur=b[i],ind=i; } ans+=b[ind],b[ind]=-1; } cout<<ans<<'\n'; for(int i=0;i<n;i++) { if(b[i]==-1) cout<<1; else cout<<0; } return 0; }

Compilation message (stderr)

trade.cpp: In function 'int main()':
trade.cpp:27:24: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int, std::vector<long long int>, std::greater<long long int> >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   27 |             if(q.size()<k)
      |                ~~~~~~~~^~
trade.cpp:35:24: warning: comparison of integer expressions of different signedness: 'std::priority_queue<long long int, std::vector<long long int>, std::greater<long long int> >::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   35 |             if(q.size()==k) {
      |                ~~~~~~~~^~~
trade.cpp:21:10: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   21 |     ll l,r;
      |          ^
trade.cpp:45:13: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
   45 |     for(int i=l;i<=r;i++)
      |             ^
#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...