Problem: Given is a string S of length N-1. Each character in S is `<` or `>`.  A sequence of N non-negative integers, a_1,a_2,\cdots,a_N, is said to be _good_ when the following condition is satisfied for all i (1 \leq i \leq N-1):    * If S_i= `<`: a_i<a_{i+1}   * If S_i= `>`: a_i>a_{i+1}  Find the minimum possible sum of the elements of a good sequence of N non- negative integers.

Submission attempts (in order):
def calcsum(n):
    return n * (n + 1) // 2

s = str(input())
n = len(s) + 1
arrk = []
arrg = []
tmp = s[0]
cnt = 1
for i in range(1, n-1):
    if s[i] == tmp:
        cnt += 1
    elif s[i] != tmp:
        if tmp == '<':
            arrk.append(cnt)
        else:
            arrg.append(cnt)
        cnt = 1
        tmp = s[i]
if tmp == '<':
    arrk.append(cnt)
else:
    arrg.append(cnt)
print(arrk, arrg)
ans = 0
for i in range(len(arrk)):
    #print(calcsum(arrk[i]-1))
    ans += calcsum(arrk[i]-1)
for i in range(len(arrg)):
    #print(calcsum(arrg[i]-1))
    ans += calcsum(arrg[i]-1)
#print('ans',ans)
if s[0] == '<':
    for i in range(len(arrg)):
        #print('a', max(arrg[i], arrk[i]))
        ans += max(arrg[i], arrk[i])
elif s[0] == '>':
    for i in range(len(arrk)):
        #print('a', max(arrg[i], arrk[i]))
        ans += max(arrg[i], arrk[i])
if len(arrg) > len(arrk):
    ans += arrg[len(arrg) - 1]
if len(arrk) > len(arrg):
    ans += arrk[len(arrk) - 1]
print(ans)


def calcsum(n):
    return n * (n + 1) // 2

s = str(input())
n = len(s) + 1
arrk = []
arrg = []
tmp = s[0]
cnt = 1
for i in range(1, n-1):
    if s[i] == tmp:
        cnt += 1
    elif s[i] != tmp:
        if tmp == '<':
            arrk.append(cnt)
        else:
            arrg.append(cnt)
        cnt = 1
        tmp = s[i]
if tmp == '<':
    arrk.append(cnt)
else:
    arrg.append(cnt)
#print(arrk, arrg)
ans = 0
for i in range(len(arrk)):
    #print(calcsum(arrk[i]-1))
    ans += calcsum(arrk[i]-1)
for i in range(len(arrg)):
    #print(calcsum(arrg[i]-1))
    ans += calcsum(arrg[i]-1)
print('ans',ans)
l = min(len(arrg), len(arrk))
m = max(len(arrg), len(arrk))

if s[0] == '<':
    for i in range(l):
        ans += max(arrg[i], arrk[i])
    if l < len(arrk):
        ans += arrk[len(arrk) - 1]
elif s[0] == '>':
    ans += arrg[0]
    #print(arrg[0])
    if l != m:
        for i in range(l):
            #print('a', arrg[i+1], arrk[i], max(arrg[i+1], arrk[i]))
            ans += max(arrg[i+1], arrk[i])
    else:
        for i in range(l-1):
            #print('a', arrg[i+1], arrk[i], max(arrg[i+1], arrk[i]))
            ans += max(arrg[i+1], arrk[i])
    if s[n-2] == '<':
        ans += arrk[len(arrk) - 1]
    if l < len(arrk):
        ans += arrk[len(arrk) - 1]
print(ans)

def calcsum(n):
    return n * (n + 1) // 2

s = str(input())
n = len(s) + 1
arrk = []
arrg = []
tmp = s[0]
cnt = 1
for i in range(1, n-1):
    if s[i] == tmp:
        cnt += 1
    elif s[i] != tmp:
        if tmp == '<':
            arrk.append(cnt)
        else:
            arrg.append(cnt)
        cnt = 1
        tmp = s[i]
if tmp == '<':
    arrk.append(cnt)
else:
    arrg.append(cnt)
#print(arrk, arrg)
ans = 0
for i in range(len(arrk)):
    #print(calcsum(arrk[i]-1))
    ans += calcsum(arrk[i]-1)
for i in range(len(arrg)):
    #print(calcsum(arrg[i]-1))
    ans += calcsum(arrg[i]-1)
#print('ans',ans)
if s[0] == '<':
    for i in range(len(arrg)):
        #print('a', max(arrg[i], arrk[i]))
        ans += max(arrg[i], arrk[i])
    if len(arrg) > len(arrk):
        ans += arrg[len(arrg)-1]
    elif len(arrk) > len(arrg):
        ans += arrk[len(arrk)-1]
elif s[0] == '>':
    ans += arrg[0]
    for i in range(len(arrk)-1):
        #print('a', max(arrg[i+1], arrk[i]))
        ans += max(arrg[i+1], arrk[i])
    if len(arrg) > len(arrk):
        ans += arrg[len(arrg)-1]
    elif len(arrk) > len(arrg):
        ans += arrk[len(arrk)-1]
    else:
        if s[n-2] == '<':
        ans += arrk[len(arrk)-1]
print(ans)


def calcsum(n):
    return n * (n + 1) // 2

s = str(input())
n = len(s) + 1
arrk = []
arrg = []
tmp = s[0]
cnt = 1
for i in range(1, n-1):
    if s[i] == tmp:
        cnt += 1
    elif s[i] != tmp:
        if tmp == '<':
            arrk.append(cnt)
        else:
            arrg.append(cnt)
        cnt = 1
        tmp = s[i]
if tmp == '<':
    arrk.append(cnt)
else:
    arrg.append(cnt)
#print(arrk, arrg)
ans = 0
for i in range(len(arrk)):
    #print(calcsum(arrk[i]-1))
    ans += calcsum(arrk[i]-1)
for i in range(len(arrg)):
    #print(calcsum(arrg[i]-1))
    ans += calcsum(arrg[i]-1)
#print('ans',ans)
l = min(len(arrg), len(arrk))
m = max(len(arrg), len(arrk))

if s[0] == '<':
    for i in range(l):
        ans += max(arrg[i], arrk[i])
    if l < len(arrk):
        ans += arrk[len(arrk) - 1]
elif s[0] == '>':
    ans += arrg[0]
    #print(arrg[0])
    if l != m:
        for i in range(l):
            #print('a', arrg[i+1], arrk[i], max(arrg[i+1], arrk[i]))
            ans += max(arrg[i+1], arrk[i])
    else:
        for i in range(l-1):
            #print('a', arrg[i+1], arrk[i], max(arrg[i+1], arrk[i]))
            ans += max(arrg[i+1], arrk[i])
    if s[n-2] == '<':
        ans += arrk[len(arrk) - 1]
    if l < len(arrk):
        ans += arrk[len(arrk) - 1]
print(ans)

Verdicts: Wrong Answer

Wrong Answer

Runtime Error

Accepted