#P15983. [PA 2026] 列竖式 / Dodawanie

[PA 2026] 列竖式 / Dodawanie

题目描述

Bajtek 正在学习列竖式。他将三个相同长度 nn 的数字上下对齐排列。他现在想知道,有多少对 (i,j)(i, j)(其中 1ijn1 \leq i \leq j \leq n),使得这三个数从第 ii 位到第 jj 位的片段构成一个正确的加法算式(即第三个数的对应片段等于第一个数与第二个数的对应片段之和)。所有数字均允许有前导零。

输入格式

输入由三行组成,每行包含一个整数(可能以零开头)。这三个数的位数均相同,均为 nn 位(1n1061 \leq n \leq 10^6)。

输出格式

输出一个整数,表示有多少对 (i,j)(i, j) 使得从第 ii 列到第 jj 列的片段构成正确的加法算式。

037523
040834
978367
4

提示

样例解释:正确的加法算式对应于以下几对:(2,2)(2, 2)(因为 3+4=73 + 4 = 7)、(2,4)(2, 4)(因为 375+408=783375 + 408 = 783)、(3,4)(3, 4)(因为 75+8=8375 + 8 = 83)以及 (6,6)(6, 6)(因为 3+4=73 + 4 = 7)。请注意,(2,2)(2,2)(6,6)(6,6) 所对应的片段完全相同,但我们仍将它们分别计数,共计两次。而对于未对齐的片段加法,例如 3+3=63 + 3 = 6,我们不将其计入。