Codeforces 166A RankList
なんかいい感じにソートしたかった。
時間でソートして、解いた問題数でstableソートすればいいんかなって思ったけど、なんかうまいこといかなかった。
#include <iostream> #include <iomanip> #include <vector> #include <map> #include <set> #include <queue> #include <numeric> #include <algorithm> #include <utility> #include <functional> #include <cctype> #include <complex> #include <string> #include <sstream> #define pb push_back #define all(c) c.begin(),c.end() #define rall(c) c.rbegin(),c.rend() #define rep(i,n) for(int i=0;i<(n);i++) #define tr(it,container) \ for(typeof(container.begin()) it = container.begin(); it != container.end(); ++it) #define present(container, element) (container.find(element) != container.end()) #define cpresent(container, element) (find(all(container),element) != container.end()) #define sz(a) ((int)a.size()) typedef long long ll; const int dx[] = {1,0,-1,0}; const int dy[] = {0,-1,0,1}; const double EPS = 1e-9; using namespace std; bool cp(const pair<int,int> &left,const pair<int,int> &right){ if(left.first == right.first) return left.second < right.second; else return left.first > right.first; } int main(){ int n; int k; cin >> n >> k; vector<pair<int,int> > V(n); rep(i,n){ int p,t; cin >> p >> t; V[i] = make_pair(p,t); } sort(all(V),cp); pair<int,int> kth = V[k-1]; int ret = count(all(V),kth); cout << ret << endl; return 0; }