CF338E Optimize!

题目描述

Manao 正在解决这样一个问题: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF338E/5342825b0bbcbbc06536e5a019fb46969a4849f8.png) 他想出了一个能得到正确答案但效率很低的解法。你将获得他解决该问题的伪代码,其中函数 getAnswer 用于计算问题的答案: ``` getAnswer(a[1..n], b[1..len], h) answer = 0 for i = 1 to n-len+1 answer = answer + f(a[i..i+len-1], b, h, 1) return answer f(s[1..len], b[1..len], h, index) if index = len+1 then return 1 for i = 1 to len if s[index] + b[i] >= h mem = b[i] b[i] = 0 res = f(s, b, h, index + 1) b[i] = mem if res > 0 return 1 return 0 ``` 你的任务是帮助 Manao 优化他的算法。

输入格式

第一行包含用空格分隔的整数 $n$、$len$ 和 $h$($1 \le len \le n \le 150000$,$1 \le h \le 10^9$)。 第二行包含 $len$ 个用空格分隔的整数 $b_1, b_2, \ldots, b_{len}$($1 \le b_i \le 10^9$)。 第三行包含 $n$ 个用空格分隔的整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)。

输出格式

输出一个整数,表示 Manao 问题的答案。

说明/提示

由 ChatGPT 5 翻译