Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bits/stdc++.h>
- using namespace std;
- #define pb push_back
- #define vi vector<int>
- #define vpii vector<pair<int, int>>
- #define N (int)2e5 + 5
- #define f first
- #define s second
- #define all(x) x.begin(), x.end()
- #define forn(i, n) for (int i = 0; i < n; i++)
- #define fore(i, l, r) for (int i = l; i < r; i++)
- #define sz(a) (int)((a).size())
- #define ll long long
- #define ar array
- #define init(arr) memset(arr, 0, sizeof(arr))
- #define endl "\n"
- #define mp make_pair
- int n;
- int a[N];
- int temp[N];
- void solve()
- {
- int len=0;
- forn(i,n)
- temp[i]=0;
- temp[0]=0;
- for(int i=1;i<n;i++)
- {
- if(a[i]>a[temp[len]])
- {
- len++;
- temp[len]=i;
- }
- else
- {
- if(a[temp[0]]>a[i])
- temp[0]=i;
- else
- {
- int l=0,r=len;
- int ans=-1;
- while(l<=r)
- {
- int mid=l+(r-l)/2;
- if(a[temp[mid]]>a[i])
- {
- ans=mid;
- r=mid-1;
- }
- else
- l=mid+1;
- }
- if(ans!=-1)
- temp[ans]=i;
- }
- }
- }
- cout<<(len+1)<<endl;
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- cin>>n;
- for(int i=n-1;i>=0;i--)
- cin>>a[i];
- solve();
- }
Add Comment
Please, Sign In to add comment