62分代码求助
查看原帖
62分代码求助
337517
cscst楼主2021/8/4 16:48
#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 : " << ans << "	" << "need : " << need << endl;
	}
	cout << ans;
}

第1、7、8个样例WA了。

发现第一个测试用例就是样例,我的样例过了,但第一个测试用例却没过,这是什么奇怪现象!!

2021/8/4 16:48
加载中...