Untitled

 avatar
unknown
plain_text
a year ago
1.9 kB
5
Indexable
def count_sums(n):
    sum_chet = []
    sum_nechet = []
    if len(n) > 0:
        sum_chet.append(int(n[0]))
    if len(n) > 1:
        sum_nechet.append(int(n[1]))

    for i in range(2, len(n)):
        if i % 2 == 0:
            sum_chet.append(sum_chet[-1] + int(n[i]))
        else:
            sum_nechet.append(sum_nechet[-1] + int(n[i]))
    return sum_chet, sum_nechet

def main():
    n = input()
    q = int(input())
    sum_chet, sum_nechet = count_sums(n)
    for i in range(q):
        l, r = map(int, input().split())
        if l == r:
            print("NO")
            return
        l -= 1
        r -= 1
        new_l_chet = l
        if l % 2 != 0:
            new_l_chet += 1
        new_r_chet = r
        if r % 2 != 0:
            new_r_chet -= 1
        chet_l = new_l_chet // 2
        chet_r = new_r_chet // 2

        new_l_nechet = l
        if l % 2 == 0:
            new_l_nechet += 1
        new_r_nechet = r
        if r % 2 == 0:
            new_r_nechet -= 1
        nechet_l = max(0, (new_l_nechet - 1) // 2)
        nechet_r = max(0, (new_r_nechet - 1) // 2)

        chet_l_value = 0
        if chet_l - 1 >= 0:
            chet_l_value = int(sum_chet[chet_l - 1])

        nechet_l_value = 0
        if nechet_l - 1 >= 0:
            nechet_l_value = int(sum_nechet[nechet_l - 1])

        # print(sum_chet, sum_nechet)
        # print("chet_l, chet_r", chet_l, chet_r)
        # print("nechet_l, nechet_r", nechet_l, nechet_r)

        result_chet = sum_chet[chet_r] - chet_l_value
        result_nechet = sum_nechet[nechet_r] - nechet_l_value

        # print("result_chet = ", result_chet)
        # print("result_nechet = ", result_nechet)

        if (result_chet - result_nechet) % 11 == 0:
            print("YES")
        else:
            print("NO")

if __name__ == '__main__':
    main()

# 23111
# 5
# 1 3
# 3 5
# 4 5
# 3 4
# 1 5
Editor is loading...
Leave a Comment