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;
}
给个方案吧