Codeforces - 1189B - Number Circle - 贪心
作者:互联网
https://codeforc.es/contest/1189/problem/B
优先考虑最大的元素怎么构造。拿两个次大的围着他就很好,但是其他的怎么安排呢?就直接降序排列就可以了。
a数组还开错了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
int a[100005];
int main() {
#ifdef Yinku
freopen("Yinku.in", "r", stdin);
//freopen("Yinku.out", "w", stdout);
#endif // Yinku
while(~scanf("%d", &n)) {
for(int i=1;i<=n;++i){
scanf("%d",&a[i]);
}
sort(a+1,a+1+n);
swap(a[n],a[n-1]);
bool fail=false;
for(int i=2;i<=n-1;++i){
if(a[i]>=a[i-1]+a[i+1])
fail=true;
}
if(a[1]>=a[n]+a[2])
fail=true;
if(a[n]>=a[n-1]+a[1])
fail=true;
if(fail)
puts("NO");
else{
puts("YES");
for(int i=1;i<=n;++i){
printf("%d%c",a[i]," \n"[i==n]);
}
}
}
}
标签:puts,int,Yinku,Codeforces,1189B,long,fail,Circle,true 来源: https://www.cnblogs.com/Yinku/p/11185382.html