20181027牛客B 供给和需求

二分。没什么好说的。就在绝望的时刻,突然AC了。

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long a[100001],b[100001],c[100001];
long long xam(long long a, long long b){//max
	if(a>=b) return a;
	else return b;
}
long long nim(long long a, long long b){//min
	if(a>=b) return b;
	else return a;
}
int main()
{
	long long n,m;
	scanf("%lld%lld",&n,&m);
	for(long long i=1;i<=n;i++) scanf("%lld%lld",&a[i],&b[i]);
	for(long  i=1;i<=m;i++) scanf("%lld",&c[i]);
	long long l=0,r=100000,mid,ans=2147483648;
	while(l<r){
		mid=(l+r)/2+1;
		long long gj=0,xq=0;
		for(int i=1;i<=n;i++) gj+=xam(0,a[i]-b[i]*mid);
		for(int i=1;i<=m;i++) xq+=c[i]*mid;
		ans=nim(ans,abs(gj-xq));
		if(gj<xq) r=mid-1;
		else l=mid;
	}
	printf("%lld",ans);
	return 0;
} 

  

猜你喜欢

转载自www.cnblogs.com/dong-ji-yuan/p/9862076.html
今日推荐