2 条题解
-
4
struct node{
int milk,money;
};
node a[2000000];
bool cmp(node a, node b){
return a.money<b.money;
}
int main()
{
int tot,n;
cin>>tot>>n;
for(int i=1;i<=n;i++){
cin>>a[i].money>>a[i].milk;
}
sort(a+1, a+n+1, cmp);
int ans=0;
for(int i=1;i<=n;i++){
if(tot<a[i].milk){
ans+=tot*a[i].money;
break;
}
else{
tot-=a[i].milk;
ans+=a[i].milk*a[i].mone y;
}
}
cout<<ans<<endl;
答案已提交,得分100分,可放心参考❤️
我是 Adydv,可以给个好评吗,谢谢啦❤️
-
0
#include<bits/stdc++.h> using namespace std; //输入保证正确 //输出看仔细 //所有情况都测 //数组定义,保证正确 int n, m; struct milk{ int p,a; }c[5005]; bool cmp(milk x,milk y){ return x.p<y.p; } int main() { cin>> n>> m; for( int i = 1; i <= m; i ++) { cin >> c[i].p>> c[i].a ; } sort(c+1,c+m+1,cmp); // for( int i = 1; i <= m; i ++) // { // cout << c[i].p<<" "<< c[i].a <<" "; // } int sum = 0 ; for( int i = 1; i <= m; i ++) { if(n >= c[i].a) { n -= c[i].a ; sum += c[i].p * c[i].a ; } else { sum += n * c[i].p ; break; } } cout << sum; return 0; }
- 1
信息
- ID
- 229
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 2
- 标签
- 递交数
- 102
- 已通过
- 62
- 上传者