- [KBC003G] Triangle 2
数据过水
- 2024-11-25 17:27:15 @
我的锅,数据全随的
放个正解
#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 条评论
-
nr0728 LV 5 @ 2024-12-14 11:57:40
哦对了数据似乎没有 -1,上面我给的代码该输 -1 的时候输的是不可以总司令
- 1
信息
- ID
- 81
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 36
- 已通过
- 2
- 上传者