#include<bits/stdc++.h>
using namespace std;
int need, m;
long long ans = 0;
struct node {
int mon;
int num;
} a[5005];
int cmp(node a, node b) {
if(a.mon < a.mon)
return 1;
return 0;
}
int main() {
cin >> need >> m;
for(int i = 1; i <= m; i++)
cin >> a[i].mon >> a[i].num;
sort(a + 1, a + m + 1, cmp);
int j = 0;
while(need) {
j++;
int sum;
sum += a[j].num;
if(sum <= need) {
need -= a[j].num;
ans += a[j].num * a[j].mon;
} else {
while(need) {
a[j].num--;
need--;
ans += a[j].mon;
}
}
}
cout << ans;
}
第1、7、8个样例WA了。
发现第一个测试用例就是样例,我的样例过了,但第一个测试用例却没过,这是什么奇怪现象!!