YACS(上海计算机学会竞赛平台)一星级题集——多边形的判定

2023-12-22 08:41:05
题目描述

给定?n?个整数 a[1]?,a[2]?,…,a[n]?,每个数字表示一条线段的长度,请问能否用这些线段,围成一个封闭的?n?边形?

n?条线段能围成?n?边形的充分必要条件是:任何一条线段的长度都严格小于剩余 n?1?条线段的长度之和。

输入格式

第一行:单个整数n
第二行:n?个整数?1,2,…,a[1]?,a[2]?,…,a[n]?

输出格式

如果可以围成?n?边形,输出?Yes,否则输出?No

数据范围

1≤a[i]?≤1,000,000,000;

对于30%?的数据,1≤n≤100;

对于?60% 的数据,1≤n≤5,000;

对于?100%?的数据,1≤n≤100,000;

样例数据
输入

6? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? ?3

1 3 5 2 4 6? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |? ? ? ? ? ? ? ? ?1 1 2

输出

Yes? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|? ? ? ? ? ? ? ? ? No

代码实现
#include<bits/stdc++.h>
using namespace std;
int n;
long long a[100005],sum;
int main() {
	cin>>n;
  for(int i=1;i<=n;i++)
  {
    cin>>a[i];
    sum+=a[i];
  }
  for(int i=1;i<=n;i++)
  {
    if(a[i]>=sum-a[i])
    {
      cout<<"No";
      return 0;
    }
  }
  cout<<"Yes";
  return 0;
}

文章来源:https://blog.csdn.net/A3024857/article/details/135144181
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。