제출 #379601

#제출 시각아이디문제언어결과실행 시간메모리
379601Andrei_CotorMoney (IZhO17_money)C++11
100 / 100
1223 ms58288 KiB
#include<iostream> #include<set> using namespace std; int A[1000005]; set<int> S; //chiar daca exista A[i]=A[j], nu ma incurca daca updatez doar la finalul unei secvente, altfel ma incurcau cele egale din secvente diferite (pt ca zicea ca e ok sa rupa secveta si practic sa nu mai ramana secventa) int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i=1; i<=n; i++) cin>>A[i]; int rez=0; for(int i=1; i<=n; i++) { rez++; set<int>::iterator it=S.upper_bound(A[i]); //limita superioara a numerelor din secventa la care pot ajunge fara a rupe secventa int ind=i; while(ind<n && A[ind]<=A[ind+1]) { if(it!=S.end() && A[ind+1]>(*it)) break; ind++; } for(int j=i; j<=ind; j++) S.insert(A[j]); i=ind; } cout<<rez<<"\n"; 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...