题面翻译
现在有两个长度为 L 的序列 a,b,找出有多少个下标 i 满足 ai=bi(1≤i≤L)。
由于 L 十分地大,因此 a 被体现为一个长度为 N1 的二元组序列。下面是二元组序列的生成方式:
- 对于所有 a 序列中的 ai=ai+1,我们在 (i,i+1) 中间切割一次。
- 最后 a 序列会被切割成 N1 块,每一块都是由 li 个相同的数 xi 组成的。我们将每一块表示成一个二元组 (xi,li),从左至右拼接起来即可得到一个长度为 N1 的二元组序列。
同理,b 被体现为一个长度为 N2 的二元组序列。
给出 L,N1,N2 以及两个二元组序列,解决本题开头的问题。
题目描述
2 行 L 列のマス目があります。 上から i 行目 (i∈{1,2})、左から j 列目 (1≤ j≤ L)のマス目を (i,j) で表します。 (i,j) には整数 x i,j が書かれています。
x 1,j=x 2,j であるような整数 j の個数を求めてください。
ただし、x i,j の情報は (x 1,1,x 1,2,…,x 1,L) と (x 2,1,x 2,2,…,x 2,L) をそれぞれ連長圧縮した、長さ N 1 の列 $ ((v\ _\ {1,1},l\ _\ {1,1}),\ldots,(v\ _\ {1,N\ _\ 1},l\ _\ {1,N\ _\ 1})) $ と長さ N 2 の列 $ ((v\ _\ {2,1},l\ _\ {2,1}),\ldots,(v\ _\ {2,N\ _\ 2},l\ _\ {2,N\ _\ 2})) $ として与えられます。
ここで、列 A の連長圧縮とは、A の要素 v i と正整数 l i の組 (v i,l i) の列であって、次の操作で得られるものです。
- A を異なる要素が隣り合っている部分で分割する。
- 分割した各列 B 1,B 2,…,B k に対して、v i を B i の要素、l i を B i の長さとする。
输入格式
入力は以下の形式で標準入力から与えられる。
L N 1 N 2 v 1,1 l 1,1 v 1,2 l 1,2 ⋮ v 1,N 1 l 1,N 1 v 2,1 l 2,1 v 2,2 l 2,2 ⋮ v 2,N 2 l 2,N 2
输出格式
答えを 1 行で出力せよ。
样例 #1
样例输入 #1
8 4 3
1 2
3 2
2 3
3 1
1 4
2 1
3 3
样例输出 #1
4
样例 #2
样例输入 #2
10000000000 1 1
1 10000000000
1 10000000000
样例输出 #2
10000000000
样例 #3
样例输入 #3
1000 4 7
19 79
33 463
19 178
33 280
19 255
33 92
34 25
19 96
12 11
19 490
33 31
样例输出 #3
380
提示
制約
- 1≤ L≤ 10 12
- 1≤ N 1,N 2≤ 10 5
- $ 1\leq\ v\ _\ {i,j}\leq\ 10\ ^\ 9\ (i\in\lbrace1,2\rbrace,1\leq\ j\leq\ N\ _\ i) $
- $ 1\leq\ l\ _\ {i,j}\leq\ L\ (i\in\lbrace1,2\rbrace,1\leq\ j\leq\ N\ _\ i) $
- $ v\ _\ {i,j}\neq\ v\ _\ {i,j+1}\ (i\in\lbrace1,2\rbrace,1\leq\ j\lt\ N\ _\ i) $
- $ l\ _\ {i,1}+l\ _\ {i,2}+\cdots+l\ _\ {i,N\ _\ i}=L\ (i\in\lbrace1,2\rbrace) $
- 入力はすべて整数
Sample Explanation 1
网格如下所示。
我们有四个整数 j ,其中 x1,j=x2,j : j=1,2,5,8 .因此,应该打印 4 。
Sample Explanation 2
答えが 32bit 整数に収まらない場合があることに注意してください。