Submission #491890

#TimeUsernameProblemLanguageResultExecution timeMemory
491890WhiteMoney (IZhO17_money)C++14
45 / 100
1575 ms3320 KiB
#pragma GCC optimize ("O3") #pragma GCC target ("sse4") #include <bits/stdc++.h> #define endl '\n' using namespace std; int num[1000001]; vector<int>ans,b,c; int binn(int now){ int l=0,r=ans.size()-1,mid; mid=(l+r)/2; //cout<<r<<endl; while(l<r){ if(ans[mid]<=num[now])l=mid+1; else r=mid; mid=(l+r)/2; } //cout<<"adwwda"<<now<<endl; return l; } int main (){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,br=0; cin>>n; for(int i=1;i<=n;i++)cin>>num[i]; ans.push_back(0);ans.push_back(1000002); for(int i=1;i<=n;){ int j=0; //cout<<"daw"<<endl; j=binn(i); ans.insert(ans.begin()+j,num[i]); br++; i++; int bro=j+1; while(i<=n && num[i-1]<=num[i] && num[i]<=ans[j+1]){ b.push_back(num[i]); i++; } ans.insert(ans.begin()+bro, b.begin(), b.end()); b=c; } cout<<br<<endl; 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...