iscsi

SRM 175 Div1 Level 2 Books

Dec 20th, 2011
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <string>
  5. #include <vector>
  6. #include <queue>
  7. #include <set>
  8. #include <map>
  9. #include <cstdio>
  10. #include <cstdlib>
  11. #include <cctype>
  12. #include <cmath>
  13. using namespace std;
  14. typedef long long LL;
  15. #define FOR(k,a,b) for(int k(a); k < (b); ++k)
  16. #define REP(k,a) for(int k=0; k < (a); ++k)
  17.  
  18.  
  19. class Books {
  20. public:
  21.     int sortMoves(vector <string> titles)
  22.     {
  23.         int n=titles.size();
  24.         vector<pair<string,int> > tp(n);
  25.         REP(i,n)
  26.         {
  27.             tp[i].first=titles[i];
  28.             tp[i].second=i;
  29.         }
  30.         sort(tp.begin(),tp.end());
  31.         vector<int> seq(n);
  32.         REP(i,n)
  33.             seq[i]=tp[i].second;
  34.         //longest increasing seq
  35.         vector<int> lis;
  36.         vector<int>::iterator it;
  37.         REP(i,n)
  38.         {
  39.             it=lower_bound(lis.begin(),lis.end(),seq[i]);
  40.             if(it==lis.end())
  41.                 lis.push_back(seq[i]);
  42.             else
  43.                 *it=seq[i];
  44.         }
  45.         return n-lis.size();
  46.     }
  47.  
  48. };
Advertisement
Add Comment
Please, Sign In to add comment