Advertisement
AlejandroGY

AC

Apr 24th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. int LIS(std::vector<int> &v) {
  6.     if (v.size() == 0) {
  7.         return 0;
  8.     }
  9.  
  10.     std::vector<int> tail(v.size(), 0);
  11.     int length = 1;
  12.  
  13.     tail[0] = v[0];
  14.     for (size_t i = 1; i < v.size(); i++) {
  15.         if (v[i] < tail[0]) {
  16.             tail[0] = v[i];
  17.         } else if (v[i] > tail[length-1]) {
  18.             tail[length++] = v[i];
  19.         } else {
  20.             tail[std::lower_bound(tail.begin( ), tail.begin( ) + length, v[i]) - tail.begin( )] = v[i];
  21.         }
  22.     }
  23.  
  24.     return length;
  25. }
  26.  
  27. int main() {
  28.     std::string cad;
  29.     std::cin >> cad;
  30.     std::vector<int> v;
  31.     for (int i = 0; i < cad.size( ); ++i) {
  32.         v.emplace_back(cad[i] - 'a');
  33.     }
  34.     std::cout << 26 - LIS(v) << '\n';
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement