也许风轻


私信TA

用户名:dotcpp0790343

访问量:22

签 名:

等  级
排  名 44401
经  验 335
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:排序思路:按(拥有积木数-需要积木数)由大至小对小朋友进行排序,这样需要得到帮助积木多的小朋友就排在后面,前面的小朋友可以积累更多的帮助积木给后面的小朋友

注意事项:

参考代码:

#include

#include

#include

using namespace std;

bool cmp(pair

{

return (a.first - a.second) > (b.first - b.second);

}

int main()

{

int m;

cin >> m;

int* n = new int[m];

int need, have;

vector<pair

for ( int i = 0; i < m; i++) {

cin >> n[i];

for (int j = 0; j < n[i]; j++) {

cin >> have >> need;

days[i].push_back(make_pair(have, need));

}

sort(days[i].begin(), days[i].end(), cmp);

}

int helpnum = 0;

bool flag = false;

for (int i = 0; i < m; i++) {

flag = false;

helpnum = 0;

for (int j = 0; j < n[i]; j++) {

if (days[i][j].first >= days[i][j].second) {

helpnum += days[i][j].first;

}

else {

if (days[i][j].first + helpnum >= days[i][j].second) {

helpnum += days[i][j].first;

}

else {

cout << "NO" << endl;

flag = true;

break;

}

}

}

if (!flag)

cout << "YES" << endl;

}

}


 

0.0分

1 人评分

  评论区

  • «
  • »