问题:1456. 淘淘捡西瓜
类型:贪心
题目描述:
地上有一排西瓜,每个西瓜都有自己的重量。淘淘有一个包,包的容量是固定的,淘淘希望尽可能在包里装更多的西瓜(当然要装整个的,不能切开装),请问淘淘的包最多能装下多少个西瓜?
输入:
第一行两个整数n,x ,表示有 n 个西瓜,背包容量是x 。( 1∼n∼100 ) 下面 n 个整数,表示西瓜的重量。
输出:
一个整数,表示淘淘最多能装多少西瓜回家。
样例:
输入:
5 10
2 3 1 5 4
输出:
4
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知:n 个西瓜,背包容量是x。
//未知:表示淘淘最多能装多少西瓜回家。
//关系:贪心。
//二、数据定义
int n,x,a[110],c=0;
//三、数据输入
cin>>n>>x;
for(int i=0;i<n;i++){
cin>>a[i];
}
//四、数据计算
sort(a,a+n);
for(int i=0;i<n;i++){
if(x-a[i]<0){
break;
}else{
x-=a[i];
++c;
}
}
//五、输出结果
cout<<c;
return 0;
}