6 solutions
-
1
题解
这个题看似属于分开看挺难,整体看就还好,先按照每天的僵尸都会收取,然后算出每只僵尸会吃脑子的总数,然后存入数组,在从小到大进行排序,最后从小到大加僵尸会吃的脑子总数和所拥有的脑子总数进行比较,保证吃的比拥有的少即可,顺便统计将是个数并输出,上代码:
代码
#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; }
Information
- ID
- 25
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 288
- Accepted
- 66
- Uploaded By