B题二分求佬看看哪儿错了

只过了87.5%

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5e3 + 100;
ll a[N],suma[N];
ll b[N],sumb[N];
ll n,m,u;
bool check(int mid){
	mid --;
	for(int i = 1 ; i <= n - mid; i++)
	{
		ll sum_a = suma[i+mid] - suma[i-1];
		ll sum_b = sumb[i+mid] - sumb[i-1];
		if(sum_a <= m && sum_b <= u) return true;
	}
	return false;
}
int main()
{
	cin >> n >> m >> u;
	for(int i = 1 ; i <= n ; i ++){ cin >> a[i]; suma[i] = suma[i-1] + a[i];}
	for(int i = 1 ; i <= n ; i ++){ cin >> b[i]; sumb[i] = sumb[i-1] + b[i];}
	int l = 0 , r = n;
	while(l < r){
		int mid = (l + r + 1) >> 1;
		if(check(mid)) l = mid;
		else r = mid - 1;
	}
	cout << l << endl;
}

全部评论
一天好像不是只能打一只怪兽,B题题意没有说一天只能打一只怪兽,而且有些怪兽打了不一定会增加声望,例如 4 7 10 2 3 4 5 -1 12 100 101 这组数据可以在第一天打两只怪兽,第二天打一只,所以最多是两天,但是你的输出为一天
点赞 回复 分享
发布于 2023-11-18 00:04 泛播

相关推荐

点赞 评论 收藏
分享
02-16 13:52
门头沟学院 Java
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务