Problem:
Problem H: Eleven Lover

Edward Leven loves multiples of eleven very much. When he sees a number, he always tries
to find consecutive subsequences (or substrings) forming multiples of eleven. He calls such
subsequences as 11-sequences. For example, he can find an 11-sequence 781 in a number 17819.

He thinks a number which has many 11-sequences is a good number. He would like to find out
a very good number. As the first step, he wants an easy way to count how many 11-sequences
are there in a given number. Even for him, counting them from a big number is not easy.
Fortunately, one of his friends, you, is a brilliant programmer. He asks you to write a program
to count the number of 11-sequences. Note that an 11-sequence must be a positive number
without leading zeros.

Input

The input is a sequence of lines each of which contains a number consisting of less than or equal
to 80000 digits.

The end of the input is indicated by a line containing a single zero, which should not be processed.

Output

For each input number, output a line containing the number of 11-sequences.

You can assume the answer fits in a 32-bit signed integer.

Sample Input

17819
1111
11011
1234567891011121314151617181920
0

Output for the Sample Input

1
4
4
38

Solution in Python3 (judge verdict: Accepted)

INF = 10 ** 7
def solve(N):
    ans = 0
    for i in range(len(N)):
        if i == 0:
            before = [0] * 11
            before[int(N[i])] += 1
            ans += before[0]
        elif N[i] == '0':
            now = [0] * 11
            for j in range(11):
                k = j*10%11
                now[k] += before[j]
            ans += now[0]
            before = now
        else:
            M = int(N[i])
            now = [0] * 11
            for j in range(11):
                k = (j*10 + M)%11
                now[k] += before[j]
            now[M%11] += 1
            ans += now[0]
            before = now
    print(ans)

def main():
    while True:
        N = input()
        if N == '0':
            return
        solve(N)
if __name__ == '__main__':
    main()