目录:
题目:
你想购买 n� 样商品,第 i� 件价格为 ai��。但是你只有 m� 块钱,请你回答你最多可以买多少样商品。
输入格式
第 11 行 22 个正整数 n,m�,�,分别表示你想购买 n� 样商品、你有 m� 块钱。
第 22 行 n� 个正整数 a1,a2,...,an�1,�2,...,��,表示商品的价格。
输出格式
仅 11 行 11 个整数,表示最多可以购买的商品样数。
样例输入
5 10
1 2 3 3 5
样例输出
4
数据范围
对于 100%100% 的数据,保证 1≤n≤103,1≤m≤109,1≤ai≤1061≤�≤103,1≤�≤109,1≤��≤106。
代码:
#include<bits/stdc++.h>
using namespace std;
long n,m,a[1000001],t;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++){
if(a[j]>=a[j+1]){
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
t=0;
while(m>=a[t+1]){
m -=a[t];
t++;
}
cout<<t;
return 0;
}
思路:
首先把这个数组排序,排序后把它重小的开始,直到它小余钱数。