Sicily-1134

一.      题意

按照孩子们需要的积木块数排序(从小到大),先处理需要积木块数少的孩子。

二.      代码

 1 //
 2 //  main.cpp
 3 //  sicily-1134
 4 //
 5 //  Created by ashley on 14-10-25.
 6 //  Copyright (c) 2014年 ashley. All rights reserved.
 7 //
 8 
 9 #include <iostream>
10 #include <algorithm>
11 using namespace std;
12 
13 typedef struct
14 {
15     long ownCake;
16     long wantCake;
17 }child;
18 
19 child childs[10000];
20 
21 bool compare(child left, child right)
22 {
23     return left.wantCake < right.wantCake;
24 }
25 
26 int main(int argc, const char * argv[])
27 {
28     int childrenNum;
29     long currentNum, cakeNum;
30     bool success;
31     while (cin >> childrenNum >> cakeNum) {
32         if (childrenNum == 0) {
33             break;
34         }
35         success = true;
36         currentNum = cakeNum;
37         for (int i = 0; i < childrenNum; i++) {
38             cin >> childs[i].ownCake >> childs[i].wantCake;
39         }
40         sort(childs, childs + childrenNum, compare);
41         for (int i = 0; i < childrenNum; i++) {
42             if (childs[i].wantCake > currentNum) {
43                 success = false;
44                 cout << "NO" << endl;
45                 break;
46             } else {
47                 currentNum = currentNum + childs[i].ownCake;
48             }
49         }
50         if (success) {
51             cout << "YES" << endl;
52         }
53     }
54     return 0;
55 }

 

posted on 2014-12-08 20:04  ashleyblog  阅读(118)  评论(0编辑  收藏  举报