Submission #224732

#TimeUsernameProblemLanguageResultExecution timeMemory
224732kshitij_sodaniFeast (NOI19_feast)C++17
30 / 100
51 ms2808 KiB
#include <iostream> #include <bits/stdc++.h> using namespace std; #define a first #define b second #define pb push_back typedef long long llo; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); llo ma=0; llo n,k; cin>>n>>k; llo it[n]; for(llo i=0;i<n;i++){ cin>>it[i]; //cout<<i<<endl; } if(k==1){ llo su=0; for(llo i=0;i<n;i++){ su+=it[i]; su=max(su,(llo)0); ma=max(ma,su); } cout<<ma<<endl; return 0; } llo ind=0; vector<llo> aa; while(ind<n){ if(it[ind]<=0){ llo su=0; while(ind<n){ if(it[ind]>0){ break; } su+=it[ind]; ind+=1; } aa.pb(su); } if(it[ind]>0){ llo su=0; while(ind<n){ if(it[ind]<0){ break; } su+=it[ind]; ind+=1; } aa.pb(su); } } set<pair<llo,llo>> ac; llo kk=0; llo ll=aa.size()-1; if(aa[0]<0){ kk+=1; } if(aa[ll]<0){ ll-=1; } llo le[aa.size()]; llo re[aa.size()]; llo tot=0; for(llo i=0;i<aa.size();i++){ if(aa[i]>0){ tot+=(llo)1; } if(i>kk and i<=ll){ le[i]=i-(llo)1; } else{ le[i]=(llo)-1; } } for(llo i=0;i<aa.size();i++){ if(i>=kk and i<ll){ re[i]=i+(llo)1; } else{ re[i]=(llo)-1; } } for(llo i=kk;i<=ll;i++){ if(aa[i]<0){ ac.insert({abs(aa[i]),i}); } } llo vis[aa.size()]; for(llo i=0;i<aa.size();i++){ vis[i]=(llo)0; } /* for(int i=0;i<aa.size();i++){ cout<<aa[i]<<" "; } cout<<endl;*/ while(tot>k){ auto xx=ac.begin(); llo ind=(*xx).b; //cout<<ind<<endl; ac.erase(xx); if(le[ind]!=-1){ // ac.erase({abs(aa[le[ind]]),le[ind]}); aa[ind]+=aa[le[ind]]; aa[le[ind]]=0; if(le[le[ind]]!=-1){ re[le[le[ind]]]=ind; le[ind]=le[le[ind]]; } else{ le[ind]=-1; } } if(re[ind]!=-1){ // ac.erase({abs(aa[re[ind]]),re[ind]}); aa[ind]+=aa[re[ind]]; aa[re[ind]]=0; if(re[re[ind]]!=-1){ le[re[re[ind]]]=ind; re[ind]=re[re[ind]]; } else{ re[ind]=-1; } } tot-=1; if(aa[ind]<0){ ac.insert({abs(aa[ind]),ind}); } } for(llo i=0;i<aa.size();i++){ if(aa[i]>0){ ma+=aa[i]; } } cout<<ma<<endl; return 0; }

Compilation message (stderr)

feast.cpp: In function 'int main()':
feast.cpp:73:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(llo i=0;i<aa.size();i++){
              ~^~~~~~~~~~
feast.cpp:84:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(llo i=0;i<aa.size();i++){
              ~^~~~~~~~~~
feast.cpp:99:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(llo i=0;i<aa.size();i++){
              ~^~~~~~~~~~
feast.cpp:145:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(llo i=0;i<aa.size();i++){
              ~^~~~~~~~~~
feast.cpp:98:6: warning: variable 'vis' set but not used [-Wunused-but-set-variable]
  llo vis[aa.size()];
      ^~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...