有一个问题,求大佬们看看
查看原帖
有一个问题,求大佬们看看
730885
xyx_37jc楼主2022/8/8 21:52

48分,后面四个数据点全RE。

所以我抱着试一试的心态,把数组容量调大,c[5005]换成c[2000001]居然就过了。

不是说0<=m<=5000吗?

48分代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{
	ll p,a;
}c[5005];
bool cmp(node x,node y){
	return x.p<y.p;
}
ll sum,n,m,i;
int main(){
	scanf("%lld%lld",&n,&m);
	for(i=1;i<=m;i++) cin>>c[i].p>>c[i].a;
	sort(c+1,c+n+1,cmp);
	i=1;
	/*for(i=1;i<=m;i++){
		cout<<c[i].p<<" "<<c[i].a;
		cout<<endl;
	}*/
	while(1){
		if(c[i].a>=n){
			sum+=c[i].p*n;
			printf("%lld",sum);
			return 0;
		}
		n-=c[i].a;
		sum+=c[i].a*c[i].p;
		i++;
	}
}
2022/8/8 21:52
加载中...