Submission details
Task:Hiitdromes
Sender:Very Competitive Programmers
Submission time:2025-11-08 13:27:14 +0200
Language:Python3 (PyPy3)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.04 sdetails
#3ACCEPTED0.04 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.04 sdetails
#6ACCEPTED0.04 sdetails
#7ACCEPTED0.04 sdetails
#8ACCEPTED0.04 sdetails
#9ACCEPTED0.04 sdetails
#10ACCEPTED0.08 sdetails
#11ACCEPTED0.08 sdetails
#12ACCEPTED0.06 sdetails
#13ACCEPTED0.06 sdetails
#14ACCEPTED0.21 sdetails
#15ACCEPTED0.24 sdetails
#16ACCEPTED0.10 sdetails
#17ACCEPTED0.18 sdetails
#18ACCEPTED0.09 sdetails
#19ACCEPTED0.09 sdetails
#20ACCEPTED0.09 sdetails
#21ACCEPTED0.09 sdetails

Code

n = int(input())
s = input()
dp = [[0 for _ in range(n)] for _ in range(n)]

for i in range(n):
    if s[i] in ['H', 'I', 'T']: dp[i][i] = 0
    else: dp[i][i] = 1

for k in range(1, n+1):
    for i in range(0, n - k):
        j = i + k
        dp[i][j] = 2 + dp[i+1][j-1]
        dp[i][j] = min(dp[i][j], min(1 + dp[i+1][j], 1 + dp[i][j-1]))

        if s[i] == s[j] and s[i] in ['H','I','T']:
            dp[i][j] = min(dp[i][j], dp[i+1][j-1])
        if s[i] != s[j] and (s[i] in ['H', 'I', 'T'] or s[j] in ['H', 'I', 'T']):
            dp[i][j] = min(dp[i][j], 1 + dp[i+1][j-1])

print(dp[0][n-1])

Test details

Test 1

Verdict: ACCEPTED

input
6
HEITTO

correct output
3

user output
3

Test 2

Verdict: ACCEPTED

input
1
I

correct output
0

user output
0

Test 3

Verdict: ACCEPTED

input
1
A

correct output
1

user output
1

Test 4

Verdict: ACCEPTED

input
1
O

correct output
1

user output
1

Test 5

Verdict: ACCEPTED

input
1
Z

correct output
1

user output
1

Test 6

Verdict: ACCEPTED

input
10
HHTTHITTIH

correct output
2

user output
2

Test 7

Verdict: ACCEPTED

input
10
TTAHTHHAHT

correct output
3

user output
3

Test 8

Verdict: ACCEPTED

input
10
BFUJMZSMZJ

correct output
10

user output
10

Test 9

Verdict: ACCEPTED

input
10
WAZGWJNVGK

correct output
10

user output
10

Test 10

Verdict: ACCEPTED

input
100
HIIIIHHHHHHTIHHHHIIIHHTITTHTTT...

correct output
24

user output
24

Test 11

Verdict: ACCEPTED

input
100
TAHAIAITAIHHHITAHAHHIITTHAITTH...

correct output
34

user output
34

Test 12

Verdict: ACCEPTED

input
100
EBARMESYLCNFAXNWYCWXSSCNXVWPDS...

correct output
100

user output
100

Test 13

Verdict: ACCEPTED

input
100
ELTWGCNSAJXAXHACYSDJHRPZYMWXAE...

correct output
87

user output
87

Test 14

Verdict: ACCEPTED

input
1000
TIHTTTTHTTITIITTIITIHIHTHTTIII...

correct output
222

user output
222

Test 15

Verdict: ACCEPTED

input
1000
ITTITAHHAHTHIAAAIIHITIAHITHHIH...

correct output
342

user output
342

Test 16

Verdict: ACCEPTED

input
1000
WVEPBCKVGYOAJVJSCEFXYAGNSOWZVL...

correct output
1000

user output
1000

Test 17

Verdict: ACCEPTED

input
1000
FINBOIBDJSFERQEWBVYROECPSOESGJ...

correct output
888

user output
888

Test 18

Verdict: ACCEPTED

input
1000
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
1000

user output
1000

Test 19

Verdict: ACCEPTED

input
1000
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH...

correct output
0

user output
0

Test 20

Verdict: ACCEPTED

input
1000
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII...

correct output
0

user output
0

Test 21

Verdict: ACCEPTED

input
1000
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...

correct output
0

user output
0