这道题样例都能过,但是错了69分求助!!

#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
int h[N],e[N],ne[N],idx;
int a[N],b[N],c[N];
void add(int a,int b)
{
e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int n;
bool flag[N];
int mtc[N];
bool find(int x)
{
for(int i=h[x];i!=-1;i=ne[i])
{
if(!flag[e[i]])
{
flag[e[i]]=1;
if(mtc[e[i]]==0 || find(mtc[e[i]]))
{
mtc[e[i]]=x;
mtc[x]=e[i];
return true;
}
}
}
return false;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]);
memset(h,-1,sizeof h);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i==j) continue;
if(a[i]>a[j] && b[i]>b[j] && c[i]>c[j]) add(i,j+n);
}
}
int ans=0;
for(int i=1;i<=n;i++)
{
if(find(i)) ans++;
}
printf("%d",n-ans);
}
输入 1复制
3
5 4 8
27 10 10
100 32 523
输出 1复制
1
输入 2复制
3
1 2 1
2 1 1
1 1 2
输出 2复制
3
输入 3复制
4
1 1 1
2 3 2
3 2 2
4 4 4
输出 3复制
2