求调语法错误
查看原帖
求调语法错误
315205
Kniqht楼主2023/10/21 08:13

真的麻了,一堆错误信息看不出来……

考前降至/kel

谢谢大佬

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;
int n,id[3][N];
struct Q{
	int x,y,z;
}; 
priority_queue<Q> q;
struct Nd{
	int x,y,z,id;
}a[N],b[N];
bool cmp1(Nd xx,Nd yy){
	return xx.x<yy.x;
}
bool cmp2(Nd xx,Nd yy){
	return xx.y<yy.y;
}
bool cmp3(Nd xx,Nd yy){
	return xx.z<yy.z;
}
signed main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z),a[i].id=i;
		b[i]=a[i];
	}
	sort(b+1,b+n+1,cmp1);
	for(int i=1;i<=n;i++) id[0][i]=b[i].id;
	sort(b+1,b+n+1,cmp2);
	for(int i=1;i<=n;i++) id[1][i]=b[i].id;
	sort(b+1,b+n+1,cmp3);
	for(int i=1;i<=n;i++) id[2][i]=b[i].id;
	q.push({n,n,n});
	int t[3];
	while(!q.empty()){
		Q T=q.top();
		t[0]=T.x,t[1]=T.y,t[2]=T.z;
		q.pop();
 		bool flag=1;
		if(a[id[0][t[0]]].x<=a[id[1][t[1]]].x||a[id[0][t[0]]].x<=a[id[2][t[2]]].x) flag=0;
		if(a[id[1][t[1]]].y<=a[id[0][t[0]]].y||a[id[1][t[1]]].y<=a[id[2][t[2]]].y) flag=0;
		if(a[id[2][t[2]]].z<=a[id[1][t[1]]].z||a[id[2][t[2]]].z<=a[id[0][t[0]]].z) flag=0;
		if(flag){
			printf("%d",a[id[0][t[0]]].x+a[id[1][t[1]]].y+a[id[2][t[2]]].z);
			return 0;
		}
		if(t[0]!=1) q.push({t[0]-1,t[1],t[2]});
		if(t[1]!=1) q.push({t[0],t[1]-1,t[2]});
		if(t[2]!=1) q.push({t[0],t[1],t[2]-1});
	} 
	return 0;
}
2023/10/21 08:13
加载中...