-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patht2.py
40 lines (31 loc) · 923 Bytes
/
t2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
def prerr(*args):
import sys
print(*args,file=sys.stderr)
k = int(input())
text = str(input())
letters = 'abcdefghijklmnopqrstuvwxyz'
# assert len(set(letters)) == 26, "Error: letters"
def get_score(text, letter, nrep=0):
score = maxscore = 0 # at least one letter is present
rep_used = 0
ileft = 0
for nxt in text:
if nxt == letter:
score += 1
else:
# assert 0 <= rep_used <= nrep, f"err: {rep_used=}"
if rep_used < nrep:
# nxt replaced
score += 1
rep_used += 1
else:
# shrink
while text[ileft] == letter:
ileft += 1
score -= 1
ileft += 1
if score > maxscore:
maxscore = score
return maxscore
# answer
print(max(get_score(text, letter, k) for letter in letters))