Submission #898586

#TimeUsernameProblemLanguageResultExecution timeMemory
898586WhiteBigger segments (IZhO19_segments)C++14
0 / 100
1 ms344 KiB
#pragma GCC optimize <"O3"> #include <bits/stdc++.h> #define endl "\n" using namespace std; long long red[500005]; vector<long long>clr,cur; long long binary(long long now){ long long l=0,r=cur.size()-1,mid,kr=cur.size()-1; if(cur.empty())return -1; while(l<r){ mid=(l+r)/2; if(cur[kr]-cur[mid]>=now)l=mid+1; else r=mid; } if(cur[kr]<now)return -1; if(cur[kr]-cur[l]<now)l--; if(l==-1)return -2; return l; } long long binary2(long long L,long long N){ long long l=0,r=cur.size(),mid,kr=cur.size()-1; if(cur.empty())return -1; cur.push_back(1000000007); while(l<r){ mid=(l+r)/2; if(cur[kr]-cur[mid]+N<L+cur[mid])l=mid+1; else r=mid; } cur.pop_back(); if(l==cur.size())l=-1; return l; } int main(){ //ios_base::sync_with_stdio(false); //cin.tie(NULL); long long n; cin>>n; for(int i=0;i<n;i++)cin>>red[i]; long long br=1,L=red[0]; //cur.push_back(1);cur.push_back(3);cur.push_back(3);cur.push_back(3);cur.push_back(4);cur.push_back(4); //cout<<binary(0)<<endl; for(int i=1;i<n;i++){ //cout<<"L: "<<L<<endl; long long N=red[i]; if(N>=L){ br++; long long kude=binary2(L,N); //cout<<kude<<endl; if(kude>-1)L=N+cur[cur.size()-1]-cur[kude]; else L=N+cur[cur.size()-1]; cur=clr; }else{ long long kude=binary(L-N); //cout<<kude<<endl; if(kude==-1){ if(cur.empty()==true)cur.push_back(N); else cur.push_back(cur[cur.size()-1]+N); }else{ br++; if(kude>=0)L=N+cur[cur.size()-1]-cur[kude]; else L=N+cur[cur.size()-1]; while(cur.empty()==false)cur.pop_back(); } } } cout<<br<<endl; return 0; }

Compilation message (stderr)

segments.cpp:1:22: warning: '#pragma GCC optimize' is not a string or number [-Wpragmas]
    1 | #pragma GCC optimize <"O3">
      |                      ^
segments.cpp: In function 'long long int binary2(long long int, long long int)':
segments.cpp:37:9: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |     if(l==cur.size())l=-1;
      |        ~^~~~~~~~~~~~
#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...