求助!
查看原帖
求助!
993175
a_gold_TomAndJerry楼主2023/12/3 18:14

题目:P8800 卡牌

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5;
long long n,m,a[maxn],b[maxn];
bool check(long long x){
	int num=0;
	for(int i=1;i<=n;i++){
		if(abs(a[i]-x)>b[i]) num+=0-b[i];
		else if(a[i]-x<0) num+=a[i]-x;
	}
	if(m+num>=0) return true;
	else return false;
}
int main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	for(int i=1;i<=n;i++) scanf("%lld",&b[i]);
	long long l=1,r=m,ans=-1;
	if(r==0) r++;
	while(l<=r){
		long long mid=(l+r)/2;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}else r=mid-1;
	}
	cout<<ans<<endl;
	return 0;
} 

本地测试正常,为什么到洛谷就WA?

2023/12/3 18:14
加载中...