sicily1134. 积木分发_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > sicily1134. 积木分发

sicily1134. 积木分发

 2013/6/19 11:18:54  linxiaoty  程序员俱乐部  我要评论(0)
  • 摘要:#include<iostream>usingnamespacestd;classchild{public:child(){}inthave;intneed;};intmain(){intnum,sum;while(true){cin>>num>>sum;if(num==0){break;}childc[num];for(inti=0;i<num;++i){cin>>c[i].have>>c[i].need;}for
  • 标签:
class="cpp" name="code">#include <iostream>
using namespace std;

class child
{
public:
  child(){}
  int have;
  int need;
};

int main()
{
   int num, sum;
   while (true)
   {
     cin >> num >> sum;
     if (num == 0)
     {
             break;
     }
     child c[num];
     for (int i = 0; i < num; ++ i)
     {
         cin >> c[i].have >> c[i].need;
     }
     for (int i = 0 ;i < num; ++ i)
     {
       int min = i;
       for (int j = i + 1; j < num; ++ j)
       {
           if (c[min].need > c[j].need)
           {
              min = j;
           }
           else if (c[min].need == c[j].need && c[min].have < c[j].have)
           {
                min = j;
           }
       }
       int temp = c[i].need;
       c[i].need = c[min].need;
       c[min].need = temp;
       int temp1 = c[i].have;
       c[i].have = c[min].have;
       c[min].have = temp1;
     }
     bool cherk = true;
     for (int i = 0; i < num; ++ i)
     {
         if (sum < c[i].need)
         {
                 cherk = false;
                 break;
         }
         else
         {
             sum += c[i].have;
         }
     }
     if (cherk)
     {
               cout << "YES" << endl;
     }
     else
     {
         cout << "NO" << endl;
     }
  }
   //system("pause");
}                                 

??????? 这道题目其实很水的,但是我的算法不是很好,通过耗时比较长。

若有好的算法,欢迎私信我!谢谢。期待好的算法。

  • 相关文章
发表评论
用户名: 匿名