Submission #83619

# Submission time Handle Problem Language Result Execution time Memory
83619 2018-11-09T13:43:05 Z charlies_moo Mate (COCI18_mate) PyPy
0 / 100
40 ms 11816 KB
s = raw_input()
q = input()


def combination(n, d):
    k = d - 2
    if n - k < k:
        k = n - k
    result = 1
    for i in range(k):
        result *= n
        n -= 1
    w = k
    for i in range(w):
        result /= k
        k -= 1
    return result


def mod(num):
    return num % (10**9+7)


def lst_id(letter):
    return ord(letter) - ord("a")


try:

    arr = [[0 for i in range(26)] for i in range(len(s))]
    arr_c = [0 for i in range(26)]

    for i in range(len(s)-1, -1, -1):
        for j in range(26):
            arr[i][j] = arr_c[j]
        arr_c[lst_id(s[i])] += 1

    arr_r = []
    for i in range(q):
        d, xy = raw_input().split()
        total = 0
        d = int(d)
        x = xy[0]
        y = xy[1]
        for i in range(len(s)):
            if s[i] == x and i >= d - 2:
                total += combination(i, d) * arr[i][lst_id(y)]
        arr_r.append(mod(total))

    for ans in arr_r:
        print ans

except:
    print -1
# Verdict Execution time Memory Grader output
1 Incorrect 37 ms 11240 KB Output isn't correct
2 Incorrect 35 ms 11464 KB Output isn't correct
3 Incorrect 36 ms 11464 KB Output isn't correct
4 Incorrect 37 ms 11464 KB Output isn't correct
5 Incorrect 36 ms 11464 KB Output isn't correct
6 Incorrect 40 ms 11540 KB Output isn't correct
7 Incorrect 37 ms 11540 KB Output isn't correct
8 Incorrect 39 ms 11540 KB Output isn't correct
9 Incorrect 37 ms 11684 KB Output isn't correct
10 Incorrect 36 ms 11816 KB Output isn't correct