Submission #168933

#TimeUsernameProblemLanguageResultExecution timeMemory
168933beso123Money (IZhO17_money)C++14
45 / 100
1570 ms60664 KiB
#include <bits/stdc++.h> #define int long long #define N 1000006 using namespace std; int n,a[N],fen[N],cnt; set <int> st; void UPD(int x,int val){ while(x<=N){ fen[x]+=val; x=x+(x&(-x)); } } int GET(int x){ int sum=0; while(x>=1){ sum+=fen[x]; x=x-(x&(-x)); } return sum; } int get(int l,int r){ if(l>r) return 0; return GET(r)-GET(l-1); } main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } int l=1; for(int r=1;r<=n+1;r++){ if(a[r-1]>a[r]){ cnt++; for(int j=l;j<=r-1;j++) st.insert(a[j]); l=r; continue; } auto it=st.upper_bound(a[l]); if(it!=st.end() && *it<a[r]){ ++cnt; for(int j=l;j<=r-1;j++) st.insert(a[j]); l=r; } } cout<<cnt; return 0; }

Compilation message (stderr)

money.cpp:26:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...