8.27NOIP Day12模拟赛
T1
正着跑一边使得每个数比前面的数最多少 \(m\),反着跑一遍使得每个数最多比后面的数少 \(m\),由于只能加不能减,所以这就是最优情况。
#include<bits/stdc++.h>
#define int long long
#define N 200005
using namespace std;
int x[N];
signed main(){
int T;
scanf("%lld",&T);
while(T--){
int n;
scanf("%lld",&n);
for(int i=1;i<=n;i++)scanf("%lld",&x[i]);
sort(x+1,x+n+1);
if(n&1){
int summ=0;
for(int i=1;i<n;i+=2)summ+=x[i+1]-x[i];
if(summ<x[n])printf("Yes\n");
else printf("No\n");
}
else{
int summ=0;
for(int i=2;i<n;i+=2)summ+=x[i+1]-x[i];
if(summ<x[n]-x[1])printf("Yes\n");
else printf("No\n");
}
}
return 0;
}

浙公网安备 33010602011771号