Problem:
Score : 400 points

Problem Statement

Given is a string S consisting of digits from 1 through 9.

Find the number of pairs of integers (i,j) (1 ≤ i ≤ j ≤ |S|) that satisfy the following condition:

Condition: In base ten, the i-th through j-th characters of S form an integer that is a multiple of 2019.

Constraints

1 ≤ |S| ≤ 200000

S is a string consisting of digits from 1 through 9.

Input

Input is given from Standard Input in the following format:

S

Output

Print the number of pairs of integers (i,j) (1 ≤ i ≤ j ≤ |S|) that satisfy the condition.

Sample Input 1

1817181712114

Sample Output 1

3

Three pairs - (1,5), (5,9), and (9,13) - satisfy the condition.

Sample Input 2

14282668646

Sample Output 2

2

Sample Input 3

2119

Sample Output 3

0

No pairs satisfy the condition.

Solution in PHP (7.4.4) (judge verdict: Wrong Answer)

<?php
while ($line = fgets(STDIN)) {
    $inputs[] = trim($line);
};
$s = (int)array_shift($inputs);
$s_arr = str_split($s);

$ans = 0;
for ($i = 0; $i < count($s_arr); $i++) {
    for ($j = $i; $j < count($s_arr); $j++){
        $check_num = "";
        for ($k = $i; $k <= $j; $k++) {
            if ($s_arr[$k] == 0) {
                break;
            }
            $check_num .= $s_arr[$k];
        }
        $check_num = (int) $check_num;
        if ($check_num > 200000 | $check_num < 1) {
            continue;
        }

        if (($check_num % 2019) === 0) {
            #echo "check_num: $check_num\n";
            #echo "i, j: $i, $j\n";
            $ans++;
        }
    }

}
echo $ans . "\n";