6 solutions
Information
- ID
- 25
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 302
- Accepted
- 69
- Uploaded By
这个题看似属于分开看挺难,整体看就还好,先按照每天的僵尸都会收取,然后算出每只僵尸会吃脑子的总数,然后存入数组,在从小到大进行排序,最后从小到大加僵尸会吃的脑子总数和所拥有的脑子总数进行比较,保证吃的比拥有的少即可,顺便统计将是个数并输出,上代码:
#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
int x[100000000],y[17];
char a[11],b[18];
struct Main{
char a[20];
int cheng;
}pp[300];
int cmp(Main x,Main y){
return x.cheng>y.cheng;
}
int main()
{
int n,m,tian,shu=0;
cin>>n>>m;
tian=n;
for(int i=1;i<=n;i++){
int jiang;
cin>>jiang;
x[i]=jiang*tian;//每只僵尸会吃脑子的总数
//cout<<x[i]<<endl;
tian--;
}
sort(x+1,x+n+1);//排序
for(int i=1;i<=n;i++){
shu+=x[i];
if(shu>m){//比较吃的脑子和你的库存
cout<<i-1<<endl;
break;
}
}
if(shu<=m){
cout<<n<<endl;
}
return 0;
}
By signing up a 追梦算法网 universal account, you can submit code and join discussions in all online judging services provided by us.