AC与WA齐飞(40pts)
查看原帖
AC与WA齐飞(40pts)
565450
__K2FeO4楼主2022/10/16 12:17

4,5,6,7,9,10 WA

#include<bits/stdc++.h>
using namespace std;
const int N=444422;
typedef long long ll;
int n,m;
struct elf{
	int r1,r2,r3,id,id2=0;
	void mysort(){
		if(r1>r2)swap(r1,r2);
		if(r2>r3)swap(r2,r3);
		if(r1>r2)swap(r1,r2);
	}
	ll calc(){
		return (ll)r1*r1*r1/4;
	}
}a[N],b[N];
bool cmp(elf x,elf y){
	if(x.r3!=y.r3)return x.r3<y.r3;
	if(x.r2!=y.r2)return x.r2<y.r2;
	return x.r1<y.r1;
}
signed main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		elf p;p.id=i;
		scanf("%d %d %d",&p.r1,&p.r2,&p.r3);
		p.mysort();a[i]=p;
	}
	sort(a+1,a+n+1,cmp);
	int cnt=0;
	for(int i=1;i<n;i++){
		//printf("%d %d %d %d\n",a[i].r1,a[i].r2,a[i].r3,a[i].id);
		if(a[i].r2==a[i+1].r2&&a[i].r3==a[i+1].r3&&
		a[i+2].r2!=a[i+1].r2&&a[i+2].r3!=a[i+1].r3){
			b[++cnt].r1=a[i].r1+a[i+1].r1;
			b[cnt].r2=a[i].r2;
			b[cnt].r3=a[i].r3;
			b[cnt].id=a[i].id;
			b[cnt].id2=a[i+1].id;
			b[cnt].mysort();
		}
	}
	
	elf mm=a[n];
	for(int i=1;i<=cnt;i++)
	if(mm.r1<b[i].r1)mm=b[i];
	if(mm.id2==0)printf("0\n%d\n%lld",mm.id,mm.calc());
	else printf("1\n%d %d\n%lld",mm.id,mm.id2,mm.calc());
	return 0;
}

我在赛场上没有来得及交这道题

2022/10/16 12:17
加载中...