题目描述
FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。
但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。
拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。
可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”。
输入描述:
第一行一个正整数n, 表示笔记本的数量。接下来n行,每行两个正整数Mi,Si表示这款笔记本的内存和速度。 n≤105,Mi,Si≤109
输出描述:
一行,一个正整数,表示被完虐的笔记本数。
示例1
输入
4 100 700 200 500 50 100 300 400
输出
1
备注:
Mi和Si都是越大越优。 数据保证Mi互不相同,Si也互不相同。
思路:首先按照内存大小从大到小排序,那么我们要找被完虐的笔记本只需要比较他们的速度大小。我们用线段树维护区间的速度最大值,每次查询第i个笔记本时,查询区间[1,i-1],如果区间的最大值>=第i个笔记本,就表示该笔记本被完虐了。
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=1e5+10;
typedef long long ll