比赛 20160415 评测结果 AWWWWWWWWW
题目名称 烤鸡翅 最终得分 10
用户昵称 _Horizon 运行时间 0.283 s
代码语言 C++ 内存使用 4.89 MiB
提交时间 2016-04-15 11:11:01
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 300000
using namespace std;

int n;
int a[maxn], b[maxn], sum[maxn];

int dp[maxn];

int main(){
    freopen("wing.in", "r", stdin);
    freopen("wing.out", "w", stdout);
	scanf("%d", &n);
	for(int i = 1; i <= n; i ++) scanf("%d", &a[i]), sum[i] = sum[i-1] + a[i];
    for(int i = 1; i <= n; i ++) scanf("%d", &b[i]);
    int ans = 0;
    for(int i = 1; i <= n; i ++){
		int pos = lower_bound(sum + 1, sum + 1 + n, sum[i] - b[i]) - sum;
		dp[i] = dp[pos] + 1;
		ans = max(ans, dp[i]);
    }
    printf("%d\n", ans);
	return 0;
}