救急!!!听取WA声一片

WA60分!!!救急!

4. 年夜饭

题目ID:8591必做题100分

最新提交:

Wrong Answer

60 分

历史最高:

Wrong Answer

60 分

时间限制: 1000ms

空间限制: 524288kB

题目描述

马上又要过年了,大哈准备做一桌年夜饭,但因为他实在太“勤快”,所以今年的年夜饭他准备全都点外卖。他在做出这个决定的时候已经是下午了,所以时间非常地赶。他在不同的n个餐厅都下了单,每个餐厅点了1个菜,每个菜可以选择让餐厅送,也可以选择自提。他想知道最少需要多久就可以把所有的菜都送到家。

输入格式

第一行一个整数n
第二行n个整数a[i]代表第i家餐厅送餐要花费的时间
第三行n个整数b[i],代表去第i家餐厅自提要花费的时间

输出格式

输出一个整数,代表把所有菜都送到家的最少需要花多久

代码

#include<bits/stdc++.h>
using namespace std;
long long a[200005];
long long b[200005];
int n;
bool check(long long mid){
	int sum=0;
	for(int i=1;i<=n;i++){
		if(a[i]>=mid)
			sum+=b[i];
	}
	return sum<mid;
}
int main(){
	cin>>n;
	long long l=1,r=0;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}

	for(int i=1;i<=n;i++){
		cin>>b[i];
		r+=b[i];
	}
	while(l<=r){
		long long mid=(l+r)/2;
		if(check(mid)) r=mid-1;
		else l=mid+1;
	}
	cout<<l-1;
}

给个方案吧 :pray::pray::pray:

1 个赞

@陈家乐 没记错应该是二分,我去看看

2 个赞

你翻翻我的帖子,我还有一个RE60分的代码没解决 :sob:
为什么RE啊!

1 个赞

@陈家乐 糟糕!该页面不存在或者是一个不公开页面。

问问题请去问题讨论区