为什么RE?
查看原帖
为什么RE?
659625
BenChak楼主2023/10/16 15:25
#include<stdio.h>
#include<algorithm>
using namespace std;
struct node{
	long long x,y,z,num;
}a[300005],b[300005],c[300005];
bool cmp1(node n,node m)
{
	return n.x>m.x;
}
bool cmp2(node n,node m)
{
	return n.y>m.y;
}
bool cmp3(node n,node m)
{
	return n.z>m.z;
}
long long n,m;
int main()
{
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld%lld%lld",&a[i].x,&a[i].y,&a[i].z);
		a[i].num=i;
		b[i].num=i;
		c[i].num=i;
		b[i].x=a[i].x;
		b[i].y=a[i].y;
		b[i].z=a[i].z;
		c[i].x=a[i].x;
		c[i].y=a[i].y;
		c[i].z=a[i].z;
	}
	if(n<=300)
	{
		sort(a+1,a+n+1,cmp1);
		sort(b+1,b+n+1,cmp2);
		sort(c+1,c+n+1,cmp3);
		for(int i=1,j=1,k=1;;)
		{
			if(a[i].num==b[j].num)
			{
				if(b[j].num==c[k].num)
				k++;
				i++;
				j++;
				continue;
			}
			if(b[j].num==c[k].num)
			{
				j++;
				k++;
				continue;
			}
			if(a[i].num==c[k].num)
			{
				i++;
				k++;
				continue;
			}
			if(i>n||j>n||k>n)
			{
				printf("-1");
				return 0;
			}
			printf("%lld",a[i].x+b[j].y+c[k].z);
			return 0;
		}
	}
}
2023/10/16 15:25
加载中...