1236AC剩下都是RE 大佬们看看哪里出问题啦,救救孩子吧
查看原帖
1236AC剩下都是RE 大佬们看看哪里出问题啦,救救孩子吧
412261
xhxxhx楼主2021/11/6 12:48
#include <iostream>
#include<algorithm>
using namespace std;
struct milk {
	int pr;
	int num;
	int xh;
};
milk a[5005];
int sum,m, n,mo,book;
bool cmp(const milk &x, const milk &y) {
	if (x.pr <y.pr) return x.pr <y.pr ;
	else if(x.pr==y.pr) return x.num>y.num;
	else return x.pr <y.pr;
}
int main() {
	sum = 0;
	int sumx=0;
	mo = 0;
	cin >> n >> m;
	if(n==0) {
	    cout<<0;
	    return 0;
	}
	
	for (int i = 1;i <= m;i++) {
		cin >> a[i].pr >> a[i].num;
		a[i].xh = i;
		sumx+=a[i].num;
	}
	if(m==1){
	    cout<<n*a[1].pr;
	    return 0;
	}
	sort(a + 1, a + 1 + m, cmp);
	int j = 1;
	if(sumx>=n){
	while (sum < n) {
		
		sum += a[j].num;
		book = a[j].xh;
		j++;
	}
	sum = 0;
	for (int i = 1;i < book;i++) {
		mo += a[i].num * a[i].pr;
		sum += a[i].num;
	}
	mo = mo + (n - sum) * a[book].pr;
	}
	else{
	    for(int i=1;i<=m;i++){
	        mo+=a[i].num*a[i].pr;
	    }
	}
	cout << mo;
	return 0;
}
2021/11/6 12:48
加载中...