题目
题目描述
现在有n个人,每个人都有一个智力值和体力值。对于某一个人A来说,如果其它n-1个人中,没有人的智力值和体力值都比A高,则我们称A为“牛人”。反过来说,只要有一个人的智力值和体力值都比A高,则A就不是“牛人”了。 请统计共有多少个“牛人”。
输入输出格式
输入格式:
第一行只有一个整数n。 第二行,有n个以空格分隔的正整数,第i个正整数表示第i个人的智力值。 第三行,有n个以空格分隔的正整数,第i个正整数表示第i个人的体力值。
输出格式:
仅有一行,该行只有一个整数,表示求得的“牛人”数。
输入输出样例
输入样例#1: 复制
5
25 40 30 20 5
20 10 25 38 5
输出样例#1: 复制
3
#include<bits/stdc++.h>
using namespace std;
struct note {
int x;
int y;
}aa[200000];
int cmp(struct note mm ,struct note nn){
if(mm.x !=nn.x ) return mm.x<nn.x ;
else return mm.y <nn.y ;
}
int main(){
int n,i,j,k;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&aa[i].x );
}
for(i=0;i<n;i++){
scanf("%d",&aa[i].y );
}
sort(aa,aa+n,cmp);
int sum=1;
for(i=n-2;i>=0;i--){
for(j=n-1;j>i;j--){
if(aa[j].x >aa[i].x &&aa[j].y >aa[i].y ) break;
}
if(i==j) sum++;
}
printf("%d",sum);
return 0;
}