题目描述
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),…,(v 1,N 1,l 1,N 1)) と長さ N 2 の列 ((v 2,1,l 2,1),…,(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 行で出力せよ。
题目大意
现在有两个长度为 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 以及两个二元组序列,解决本题开头的问题。
Translated by
https://www.luogu.com.cn/user/399150
提示
制約
- 1≤ L≤ 10 12
- 1≤ N 1,N 2≤ 10 5
- 1≤ v i,j≤ 10 9 (i∈{1,2},1≤ j≤ N i)
- 1≤ l i,j≤ L (i∈{1,2},1≤ j≤ N i)
- v i,j= v i,j+1 (i∈{1,2},1≤ j< N i)
- l i,1+l i,2+⋯+l i,N i=L (i∈{1,2})
- 入力はすべて整数
Sample Explanation 1
マス目は以下の図のようになっています。  x 1,j=x 2,j となるような整数 j は、j=1,2,5,8 の 4 つなので、出力すべき値は 4 です。
Sample Explanation 2
答えが 32bit 整数に収まらない場合があることに注意してください。