题目描述:
FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。
但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。
拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。
可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”。
输入描述:

第一行一个正整数n,
表示笔记本的数量。接下来n行,每行两个正整数Mi,Si表示这款笔记本的内存和速度。
n≤1e5,Mi,Si≤1e9

输出描述:

一行,一个正整数,表示被完虐的笔记本数。

思路:将每队数据存到pair中,然后对其进行快速排序,STL中的sort函数默认对first进行排序,first相等对second进行排序。升序排序后我们对其进行从后往前的遍历,一直维护second最大值并对数据进行比较就可以了。
代码如下(供参考):

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
pair<int, int> a[100010];
int main()
{
    int n, j, k;
    cin >> n;
    for (int i = 0;i < n;i++)
    {
        scanf("%d%d",&j,&k);
        a[i].first = j;
        a[i].second = k;
    }
    sort(a, a + n);
    int ans = 0;
    j = n - 1;
    for (int i = n - 2;i >= 0;i--)
    {

        if (a[j].second > a[i].second)
        {
            if (a[j].first > a[i].first)
                ans++;
        }
        else j = i;
    }
    cout << ans << endl;
    return 0;
}

求牛币,QWQ