不愧是CF的题,真的是“天赐水题”。
好,言归正传哈,这道题实际很简单,先看代码。
代码:
#include<bits/stdc++.h>
using namespace std;
int a[110];
bool cmp(int x,int y){
return x>y;
}
int main(){
int n,m,cnt=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1,cmp);//快速排序
for(int i=1;i<=n;i++){
m-=a[i];
cnt++;
if(m<=0){
cout<<cnt;
return 0;
}
}
return 0;
}
其思路:
- 输入数组
- 给数组排个大小
- 把m变量减a[i],同时cnt++,然后判断m是否小于等于0(也就是第i个U盘及前面的U盘能否装下文件)。
就这样快乐的AC啦!