Submission #83586

#TimeUsernameProblemLanguageResultExecution timeMemory
83586XBXJLeiLeLeiLeMate (COCI18_mate)Pypy 2
0 / 100
48 ms11700 KiB
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 for i in range(k): result /= k k -= 1 return result def mod(num): return num % (10**9+7) def lst_id(letter): return ord(letter) - ord("a") arr = [[0 for i in range(26)] for i in range(len(s))] arr_c = [0] * 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 for i in range(len(s)): d = int(d) x = xy[0] y = xy[1] if s[i] == x and i >= d - 2: total += mod(combination(i, d) * arr[i][lst_id(y)]) arr_r.append(mod(total)) for i in arr_r: print i
#Verdict Execution timeMemoryGrader output
Fetching results...