您的位置:首页 > 其它

1134. 积木分发

2014-11-17 19:55 295 查看
http://soj.me/1134

使用结构体 struct...

“比较”的原则是:需求积木数少的优先给予;若需求一致,则拥有积木数多的优先给予

#include <iostream>
using namespace std;

struct children{
int have;
int want;
};

int main() {
int n,s;
while(cin >> n && n){
cin >> s;
int i,j;
children k;
children kid
;
for(i = 0 ; i < n ; i++){
cin>>kid[i].have>>kid[i].want;
}
for(i = 0; i < n ; i++){
for(j = 0 ; j < n-1-i ; j++){
if(kid[j].want > kid[j+1].want) {
k = kid[j];
kid[j] = kid[j+1];
kid[j+1] = k;//两个小朋友所需要的积木数不相同
}
else if(kid[j].want == kid[j+1].want && kid[j].have < kid[j+1].have) {
k = kid[j];
kid[j] = kid[j+1];
kid[j+1] = k;//在两个小朋友需要的积木数相同的时候,优先的是拥有较多积木数目的
}
}
}

for(i = 0 ;i < n ; i++){
if(s < kid[i].want) {
break;
}
else {
s = s + kid[i].have;
}
}

if(i == n) {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: