水NOJ FREETALK的小游戏

FREETALK的小游戏

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 174            测试通过 : 52 

题目描述

Freetalk是科协的传统活动,每周五晚都会举办一次freetalk,让科协的成员们围在一起愉快的聊天,愉快的玩耍。Freetalk的主持者,往往都是办公室的同学。为了把freetalk办得新颖、生动、有趣,办公室的同学,尤其是顾主席,每次都要花费很多的心思来准备。这周的freetalk又要开始了,这次,顾主席想出了一个有趣的游戏。游戏的规则是这样的:在一张桌子上放上一个空的大杯子,和n个装满水的马克杯。所有的玩家依次轮流进行游戏,当到一个玩家来进行游戏时,这名玩家要选出一个装满水的马克杯,并将其中的水全部倒入大杯子中,如果大杯子里的水溢出了,那么我们就认为这名玩家输了。

顾主席觉得这个游戏挺不错的,不过他有一点顾虑,如果每轮游戏都会有人输,那么输的那个人肯定就会不开心了,这样可不太好,顾主席是不希望有人不开心的。因此,顾主席想找出是否有这样一种方式,使得除了顾主席以外的所有人都不会输。现在我们告诉你所有马克杯的容积和大杯子的容积。除此之外,你应该知道,除了顾主席以外还有(n-1)个人要玩这个游戏。请你判断一下,是否有这样一种可能,除了顾主席以外的(n-1)个人里面,没有人会输。




输入

第一行,包含两个整数n和s(2 <= n <= 100; 1 <= s <= 1000),分别表示马克杯的数目还有大杯子的容积,下一行包含n个整数,a1,a2,...,an(1 <= ai <= 10),数字ai表示第i个马克杯的体积。

输出

在单独的一行,打印“YES”(不包括引号),如果除了顾主席以外的(n-1)个人可能都不会输,否则,打印“NO”。

样例输入

3 4
1 1 1

样例输出

YES

提示

input

3 4

3 1 3

output

YES

 

input

3 4

4 4 4

output

NO


<span style="font-weight: normal;"><span style="font-size:12px;">#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int n,s,a[11];
int comp(const void *a,const void *b){
    return *(int*)b-*(int*)a;
}
int main(){
    int sum=0;
    scanf("%d%d",&n,&s);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        sum+=a[i];
    }
    qsort(a,n,sizeof(int),comp);
    sum-=a[0];
    if(sum<=s)
        printf("YES\n");
    else
        printf("NO\n");
}</span></span>


版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-03-27 10:33  Tob__yuhong  阅读(170)  评论(0编辑  收藏  举报

导航