90分求助
查看原帖
90分求助
1055050
mywold楼主2024/8/2 11:54

第8个测试点为什么不对?

#include <iostream>
#include <cstdio>
#include <algorithm>

#define ll long long

const int N=2e5+50;

using namespace std;

ll n,m,a[N],b[N],ans=0;

bool check(int mid){
	ll ne=0;//当前套数每种牌需要的数量;
	for(int i=1;i<=n;i++){
		if(a[i]<mid){
			ne+=mid-a[i];
		}
	}
	return ne<=m;
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	for(int i=1;i<=n;i++){
		scanf("%lld",&b[i]);
	}
	int l=0,r=1e9;
	while(l<=r){
		int mid=l+(r-l)/2;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}else{
			r=mid-1;
		}
	}
	cout<<ans<<endl;
	return 0;
}
2024/8/2 11:54
加载中...