Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <sstream>
- #include <string>
- #include <vector>
- #include <queue>
- #include <set>
- #include <map>
- #include <cstdio>
- #include <cstdlib>
- #include <cctype>
- #include <cmath>
- using namespace std;
- typedef long long LL;
- #define FOR(k,a,b) for(int k(a); k < (b); ++k)
- #define REP(k,a) for(int k=0; k < (a); ++k)
- class Books {
- public:
- int sortMoves(vector <string> titles)
- {
- int n=titles.size();
- vector<pair<string,int> > tp(n);
- REP(i,n)
- {
- tp[i].first=titles[i];
- tp[i].second=i;
- }
- sort(tp.begin(),tp.end());
- vector<int> seq(n);
- REP(i,n)
- seq[i]=tp[i].second;
- //longest increasing seq
- vector<int> lis;
- vector<int>::iterator it;
- REP(i,n)
- {
- it=lower_bound(lis.begin(),lis.end(),seq[i]);
- if(it==lis.end())
- lis.push_back(seq[i]);
- else
- *it=seq[i];
- }
- return n-lis.size();
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment