Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.81 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. int sol[100001], k, n, p, put, r[100001];
  4. void adaugare (int x)
  5. {
  6.     if (k == 0)
  7.     {
  8.         sol[k++] = x;
  9.         return ;
  10.     }
  11.     if (x >= sol[k-1])
  12.     {
  13.         sol[k++] = x;
  14.         return ;
  15.     }
  16.     if (x<sol[0])
  17.     {
  18.         sol[0] = x;
  19.         return;
  20.     }
  21.     int p=1, put = 0, i, poz = 0;
  22.     while (p<<1 <= k)
  23.     {
  24.         p = p<<1;
  25.         ++put;
  26.     }
  27.     for (i = put; i>=0; --i)
  28.     {
  29.         if (poz + p < k && x >= sol[poz+p])
  30.             poz+=p;
  31.         p>>=1;
  32.     }
  33.     sol[poz+1] = x;
  34. }
  35. int main()
  36. {
  37.     ifstream fin ("sclm2.in");
  38.     ofstream fout ("sclm2.out");
  39.     int i, j = 0, x, copie;
  40.     fin >> n;
  41.     for (i = 0; i<n; ++i)
  42.     {
  43.         fin >> x;
  44.         adaugare(x);
  45.     }
  46.     fout << k;
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement