sicily 1234. Playground
//给出不同半径的半圆,问其中是否有某些半圆可以构成一个封闭的图形
//如果半圆的直径能构成多边形,或者是线段重合在一起,都符合封闭的定义
//于是对各半径排序(升序)后只要检查到某条边 小于或等于 前面边之和
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
double ans[20];
int main()
{
int n;
while(cin>>n&&n)
{
for(int i=0;i<n;++i)
cin>>ans[i];
sort(ans,ans+n);
int tag=0; //tag=0表示无法围成封闭的图形
double s=ans[0];
for(int i=1;i<n&&!tag;++i)
{
if(s>=ans[i]) //相等是线段重合在一起,大于是围成封闭的多边形
tag=1;
else
s+=ans[i];
}
if(tag==1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
//如果半圆的直径能构成多边形,或者是线段重合在一起,都符合封闭的定义
//于是对各半径排序(升序)后只要检查到某条边 小于或等于 前面边之和
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
double ans[20];
int main()
{
int n;
while(cin>>n&&n)
{
for(int i=0;i<n;++i)
cin>>ans[i];
sort(ans,ans+n);
int tag=0; //tag=0表示无法围成封闭的图形
double s=ans[0];
for(int i=1;i<n&&!tag;++i)
{
if(s>=ans[i]) //相等是线段重合在一起,大于是围成封闭的多边形
tag=1;
else
s+=ans[i];
}
if(tag==1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}