【问题描述】
某公司需要招聘一批员工,该公司有自己独特的评价体系,对应聘者设立了 3 个指标:技能值 Ki、智慧值 Ii 和忠诚度 Ei ,i=1, 2, ...
经过严格的初选和复选以及各项测试以后,有 N 个人进入最后的名单,公司给出了每个人的各项指标值,并规定对于某人 i,如果存在另外人 j,有Ki < Kj 、Ii < Ij 、Ei < Ej ,则 i 将会被淘汰。
请找出总共有多少人会被淘汰。
【输入形式】
第一行包含一个整数 N (1≤ N ≤ 500000),表示最终进入评价名单的人数。第二行包括 N 个整数 Ki,第三行包含 N 个整数 Ii,第四行包含 N 个整数 Ei ,0 ≤ Ki、Ii 、 Ei ≤ 109。
【输出形式】
输出为一行一个整数。
【样例输入】
3 1 4 2 4 3 2 2 5 3
【样例输出】
1
【样例说明】
【评分标准】
【说明】提防重复计次
#include <iostream>
using namespace std;
struct person{
int K;
int I;
int E;
};
int main()
{
int N;
cin>>N;
person*a=new person[N];
for(int j=0;j<N;j++)
{
cin>>a[j].K;
}
for(int j=0;j<N;j++)
{
cin>>a[j].I;
}
for(int j=0;j<N;j++)
{
cin>>a[j].E;
}
int sum=0,G=0;
int*b=new int[N]
for(int j=0;j<N;j++)
{
for(int i=0;i<N;i++)
{
if(a[j].K>a[i].K&&a[j].I>a[i].I&&a[j].E>a[i].E)
{
sum++;
for(int I=0;I<G;I++)
{
if(b[I]==i)
{
sum--;
break;
}
else
{
b[G]=i;
G++;
}
}
if(G==0)
{
b[0]=i;
}
}
}
}
cout<<sum;
return 0;
}