P11376 [GESP202412 六级] 运送物资 求助!
查看原帖
P11376 [GESP202412 六级] 运送物资 求助!
1569500
Liutengyi10086楼主2025/6/28 11:09
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
long long sum=0;
struct Struct{
	int x,y;
}a[100010],b[100010];
bool cmp1(Struct x,Struct y){
	return x.x<y.x;
}bool cmp2(Struct a,Struct b){
	return fabs(a.x-a.y)>fabs(b.x-b.y);
}int main(){
	cin>>n>>m>>k;
	int r=n,l=1;
	for(int i=1;i<=n;i++){
		cin>>a[i].x>>a[i].y;
	}for(int i=1;i<=m;i++){
		cin>>b[i].x>>b[i].y;
	}sort(a+1,a+n+1,cmp1);
	sort(b+1,b+m+1,cmp2);
	for(int i=1;i<=m;i++){
		if(b[i].x==b[i].y){
			sum+=b[i].y*k;
		}else if(b[i].x-b[i].y>0){
			if(a[l].y<=0){
				l++;
			}sum+=(b[i].y*k+b[i].x*a[l].x-b[i].y*a[l].x);
			a[l].y--;
		}else{
			if(a[r].y<=0){
				r--;
			}
			sum+=(b[i].y*k+b[i].x*a[r].x-b[i].y*a[r].x);
			a[r].y--;
		}
	}cout<<2*sum<<endl; 
	return 0;
}

为什么还是0分?

2025/6/28 11:09
加载中...