maxx函数是return了 d的最大值,后面的sort()函数为了以d的最大值来排序a数组。
sort函数:
sort函数的使用必须加上头文件“#include<algorithm>”和“using namespace std;”,其使用的方式如下:
sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填));
如果不写比较函数 则默认从小到大排列。
#include <bits/stdc++.h>
using namespace std;
struct ch{
int d;
int h;
};
bool maxx(ch x,ch y){
return x.d>y.d;
}
ch a[100000];
int main()
{
int sum=0;
int n;
cin>>n;
for(int i=0 ; i<n ; i++) cin>>a[i].d>>a[i].h;
sort(a,a+n,maxx);
int dm = a[0].d; //dm为d的最大值
int hm = 0; //hm为h的最大值
for(int i=0 ; i<n ; i++) { //遍历数组找出最大值
if(dm == a[i].d){ //如果a[i].d等于最大值
hm = max(hm,a[i].h); //交换hm的值
sum++;
}
else{
hm = max(hm,a[i].h);
if(hm<=a[i].h) sum++;
}
}
cout<<sum;
return 0;
}