# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
83632 |
2018-11-09T13:56:32 Z |
charlies_moo |
Mate (COCI18_mate) |
PyPy |
|
2000 ms |
21200 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")
arr = [[0 for i in range(26)] for i in range(len(s))]
arr_c = [0 for i in range(26)]
try:
for i in range(len(s)-1, -1, -1):
arr[i] = arr_c[:]
arr_c[lst_id(s[i])] += 1
except:
pass
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 time |
Memory |
Grader output |
1 |
Incorrect |
171 ms |
16916 KB |
Output isn't correct |
2 |
Incorrect |
157 ms |
16916 KB |
Output isn't correct |
3 |
Incorrect |
154 ms |
16916 KB |
Output isn't correct |
4 |
Incorrect |
219 ms |
18560 KB |
Output isn't correct |
5 |
Execution timed out |
2059 ms |
20336 KB |
Time limit exceeded |
6 |
Execution timed out |
2058 ms |
21088 KB |
Time limit exceeded |
7 |
Execution timed out |
2062 ms |
21200 KB |
Time limit exceeded |
8 |
Execution timed out |
2054 ms |
21200 KB |
Time limit exceeded |
9 |
Execution timed out |
2060 ms |
21200 KB |
Time limit exceeded |
10 |
Execution timed out |
2070 ms |
21200 KB |
Time limit exceeded |