问题: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;
}