CF950B Intercepted Message

题目描述

黑客 Zhorik 想要破解他昨天截获的两条秘密信息。每条信息都是由一系列加密块组成的,每个加密块包含若干字节的信息。 Zhorik 已知每条信息都是一个包含一个或多个文件的归档文件。Zhorik 还知道这些归档文件是如何通过网络传输的:如果一个归档文件包含 $k$ 个文件,文件大小分别为 $l_{1},l_{2},...,l_{k}$ 字节,那么第 $i$ 个文件会被分割成一个或多个块 $b_{i,1},b_{i,2},...,b_{i,mi}$(这些块的总长度 $b_{i,1}+b_{i,2}+...+b_{i,mi}$ 等于文件长度 $l_{i}$),之后所有块会按照归档文件中各文件的顺序依次通过网络传输。 Zhorik 认为这两条信息包含的是同一个归档文件,因为它们的总长度相等。然而,每个文件在两条信息中被分割成块的方式可能不同。 你得到了两条信息中各个块的长度。请帮助 Zhorik 判断,如果 Zhorik 的假设成立,这个归档文件最多可能包含多少个文件。

输入格式

第一行包含两个整数 $n$、$m$($1 \leq n, m \leq 10^{5}$),分别表示第一条和第二条信息中的块数。 第二行包含 $n$ 个整数 $x_{1},x_{2},...,x_{n}$($1 \leq x_{i} \leq 10^{6}$),表示组成第一条信息的各块的长度。 第三行包含 $m$ 个整数 $y_{1},y_{2},...,y_{m}$($1 \leq y_{i} \leq 10^{6}$),表示组成第二条信息的各块的长度。 保证 $x_{1}+...+x_{n}=y_{1}+...+y_{m}$,且 $x_{1}+...+x_{n} \leq 10^{6}$。

输出格式

输出归档文件最多可能包含的文件数。

说明/提示

在第一个样例中,归档文件最多可以包含 3 个文件。例如,归档文件可以包含三个文件,大小分别为 $2+5=7$,$15=3+1+11=8+2+4+1$ 和 $4+4=8$。 在第二个样例中,归档文件可能包含两个文件,大小分别为 $1$ 和 $110=10+100=100+10$。注意,归档文件在网络传输时文件顺序保持不变,因此不能认为有三个文件,大小分别为 $1$、$10$ 和 $100$。 在第三个样例中,唯一的可能是归档文件只包含一个大小为 $4$ 的文件。 由 ChatGPT 4.1 翻译