제출 #83621

#제출 시각아이디문제언어결과실행 시간메모리
83621charlies_mooMate (COCI18_mate)Pypy 2
0 / 100
2075 ms26600 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 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 except: print -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
#Verdict Execution timeMemoryGrader output
Fetching results...