题解
【入门】购买贺年卡
1 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct sp { int dj, sl; }a[1005]; bool cmp(sp a,sp b){ if(a.dj < b.dj){ return true; }else{ return false; } } int main() { int m,n; cin>>m>>n; for(int i=1;i<=n;i++){ cin>>a[i].dj>>a[i].sl; // 原代码写成了a[i].dl,与结构体成员名sl不一致 } sort(a+1, a+n+1, cmp); // 原代码误用循环变量i,改为正确的数组起始地址a+1 int s=0; int c=0; for(int i=1;i<=n;i++){ s += a[i].dj * a[i].sl; c += a[i].sl; if(c >= m){ s -= (c - m) * a[i].dj; break; } } cout << s << endl; // 原代码输出的是n,改为输出计算出的最少花费s return 0; }
- 1