Advertisement
jeff69

Untitled

Sep 20th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
4CS 0.71 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define pb push_back
  3. #define inf INFINITY
  4. #define mp make_pair
  5.  
  6. using namespace std;
  7. typedef long long ll;
  8. const int MX= 1e2+3;
  9. int len[MX],maxlen;
  10. int mn[MX],n,ar[MX];
  11.  int ans[MX];
  12. int main()
  13. {
  14.     cin>>n;
  15.     for(int i=0;i<n;i++)scanf("%d",ar+i);
  16.  
  17.     for(int i=0;i<n;i++)
  18.     {
  19.         int k;
  20.         int st=0,en=maxlen+1;
  21.  
  22.         while(st<=en)
  23.         {
  24.             k=(st+en)/2;
  25.           if(len[k]>ar[i])
  26.                 en=k-1;
  27.           else st=k+1;
  28.  
  29.         }
  30.         len[k]=ar[i];
  31.         if(ans[k]==0)ans[k]=ar[i];
  32.         maxlen=max(k,maxlen);
  33.  
  34.  
  35.     }
  36.     cout<<maxlen<<endl;
  37.     for(int i=1;i<=maxlen;i++)
  38.         cout<<ans[i]<<' ';
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement