#include #include #include #include #include using namespace std; /* bool msort1(const pair &l, const pair &r) { if (l.first==r.first) return (bool)(l.second &mset, long long many) { long long high=1000000047LL, low=0; long long mid; //cout<<"mset size:"<low+1) { mid=(high+low)/2; multiset::iterator it = mset.upper_bound(mid); if (distance(mset.begin(), it)==many) { multiset::iterator it2=mset.upper_bound(mid); it2--; return (*it2); } if (distance(mset.begin(), it) > many) high=mid; else low=mid; //cout< mset; multiset::iterator i = mset.insert(1); mset.insert(1); multiset::iterator i2=mset.insert(1); mset.insert(4); multiset::iterator i3=mset.upper_bound((*i2)+1); i3--; for (; i3!=mset.end(); i3++) cout<<*i3<<" "; cout<>m>>n) { vector > input(n); multiset mset; for (int i=0; i>input[i].first>>input[i].second; sort(input.begin(), input.end()); //for (int i=0; i