我的锅,数据全随的

放个正解

#include<bits/stdc++.h>
using namespace std;
int n,m;
double a[1048577];
int b[1048577];
double ans;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%lf",&a[i]);
	sort(a+1,a+n+1);
	for(int i=3;i<=n;i++)	
		if(a[i]<a[i-1]+a[i-2])
			b[++m]=i;
	int mx=-1;
	for(int i=1;i<=m;i++)	
		if(b[m]-b[i]>=3)
			mx=i;
	if(mx!=-1)
		ans=a[b[m]]+a[b[m]-1]+a[b[m]-2]+a[b[mx]]+a[b[mx]-1]+a[b[mx]-2]; 
	if(b[m]>=6)
	{ 
		double t1=a[b[m]-5],t2=a[b[m]-4],t3=a[b[m]-3],t4=a[b[m]-2],t5=a[b[m]-1],t6=a[b[m]];
		double tt=t1+t2+t3+t4+t5+t6;
		if(t1+t2>t3&&t4+t5>t6) ans=tt;
		if(t1+t2>t4&&t3+t5>t6) ans=tt;
		if(t1+t2>t5&&t3+t4>t6) ans=tt;
		if(t1+t2>t6&&t3+t4>t5) ans=tt;
		if(t1+t3>t4&&t2+t5>t6) ans=tt;
		if(t1+t3>t5&&t2+t4>t6) ans=tt;
		if(t1+t3>t6&&t2+t4>t5) ans=tt;
		if(t1+t4>t5&&t2+t3>t6) ans=tt;
		if(t1+t4>t6&&t2+t3>t5) ans=tt;
		if(t1+t5>t6&&t2+t3>t4) ans=tt;
	}
	if(ans==0||n<6) puts("You can\'t, Commander in Chief.");
	else printf("%.3lf\n",ans);
	return 0;
}

1 条评论

  • 1

信息

ID
81
时间
1000ms
内存
256MiB
难度
6
标签
递交数
36
已通过
2
上传者