再发一遍20pts求助,怎么没人回我(急)!
查看原帖
再发一遍20pts求助,怎么没人回我(急)!
494699
卷王慢即快楼主2022/10/22 12:45
#include<bits/stdc++.h>
using namespace std; //定义 
#define maxr 1001
#define maxn 500001
int n,x,y,z,a1=0,a2=0,a3=0,a4=0;
int cnt[maxr][maxr];
int f[maxr][maxr][5],ID[maxr][maxr][5];
int main()
{
	cin>>n; //读入 
	for(int i=1;i<=n;i++)
	{
		cin>>x>>y>>z;
		if(x>y) swap(x,y); //排序 
		if(y>z) swap(y,z);
		if(x>z) swap(x,z);
		if(cnt[y][z]<2) //处理 
		{
			f[y][z][++cnt[y][z]]=x;
			ID[y][z][cnt[y][z]]=i;
		}
		else
		{
			if(f[y][z][1]>f[y][z][2]) //更新 
			{
				swap(f[y][z][1],f[y][z][2]);
				swap(ID[y][z][1],ID[y][z][2]);
			}
			if(x>f[y][z][1]) //赋值 
			{
				f[y][z][1]=x;
				ID[y][z][1]=i;
			}
		}
	}
	for(int i=1;i<=1000;i++)
		for(int j=i;j<=1000;j++)
		{
			if(cnt[i][j]==0) continue; //判断 
			if(cnt[i][j]==1 && a4<f[i][j][1]) //更案 
			{
				a1=0;
				a2=ID[i][j][1];
				a4=f[i][j][1];
			}
			if(cnt[i][j]==2)
			{
				a1=1;
				a2=ID[i][j][1];
				a3=ID[i][j][2];
				a4=max(a4,min(f[i][j][1]+f[i][j][2],i));
			}
		}
	if(a1==0) cout<<a1<<endl<<a2<<endl<<(a4*a4*a4)/4;
	else cout<<a1<<endl<<min(a2,a3)<<" "<<max(a2,a3)<<endl<<(a4*a4*a4)/4;
	return 0;
}

凸(艹皿艹 )

2022/10/22 12:45
加载中...