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):
s = input()
n = len(s)+1
lsfg = [0]*n
flag = 0
ans = 0

for i in range(n-2):
    if s[i] != s[i+1]:
        flag += 1
        if s[i] == "<":
            lsfg[i+1] = -2
        else:
            lsfg[i+1] = -1

if flag == 0:
    p = 0
    for i in range(n):
        ans += p
        p += 1
else:
    for i in range(n):
        k = 0
        j = 0
        if lsfg[i] == -1:
            while i-k > 0:
                k += 1
                if lsfg[i-k] != -2:
                    lsfg[i-k] = k
                else:
                    break
            while i+j < n-1:
                j += 1
                if lsfg[i+j] != -2:
                    lsfg[i+j] = j
                else:
                    break

    lsfg = [0] + lsfg + [0]

    for i in range(n):
        if lsfg[i+1] == -2:
            if lsfg[i] > lsfg[i+2]:
                lsfg[i+1] = lsfg[i] +1
            else:
                lsfg[i+1] = lsfg[i+2] +1
        elif lsfg[i+1] == -1:
            lsfg[i+1] = 0

    ans = sum(lsfg)
    
print(ans)


s = input()
n = len(s)+1
lsfg = [0]*n

for i in range(n-2):
    if s[i] != s[i+1]:
        if s[i] == "<":
            lsfg[i+1] = -2
        else:
            lsfg[i+1] = -1

for i in range(n):
    k = 0
    j = 0
    if lsfg[i] == -1:
        while i-k > 0:
            k += 1
            if lsfg[i-k] != -2:
                lsfg[i-k] = k
            else:
                break
        while i+j < n-1:
            j += 1
            if lsfg[i+j] != -2:
                lsfg[i+j] = j
            else:
                break

lsfg = [0] + lsfg + [0]

for i in range(n):
    if lsfg[i+1] == -2:
        if lsfg[i] > lsfg[i+2]:
            lsfg[i+1] = lsfg[i] +1
        else:
            lsfg[i+1] = lsfg[i+2] +1
    elif lsfg[i+1] == -1:
        lsfg[i+1] = 0

print(lsfg)
ans = sum(lsfg)
print(ans)


s = input()
n = len(s)+1
lsfg = [0]*n

for i in range(n-2):
    if s[i] != s[i+1]:
        if s[i] == "<":
            lsfg[i+1] = -2
        else:
            lsfg[i+1] = -1

for i in range(n):
    k = 0
    j = 0
    if lsfg[i] == -1:
        while i-k > 0:
            k += 1
            if lsfg[i-k] != -2:
                lsfg[i-k] = k
            else:
                break
        while i+j < n-1:
            j += 1
            if lsfg[i+j] != -2:
                lsfg[i+j] = j
            else:
                break

lsfg = [0] + lsfg + [0]

for i in range(n):
    if lsfg[i+1] == -2:
        if lsfg[i] > lsfg[i+2]:
            lsfg[i+1] = lsfg[i] +1
        else:
            lsfg[i+1] = lsfg[i+2] +1
    elif lsfg[i+1] == -1:
        lsfg[i+1] = 0

ans = sum(lsfg)
print(ans)


s = input()
n = len(s)+1

ls = [0]*n



for i in range(n-1):
    if s[i] == "<":
        ls[i+1] = ls[i] + 1
    else:
        ls[i+1] = ls[i] - 1

m = min(ls)

for i in range(n):
    ls[i] = ls[i] + abs(m) 

ans = sum(ls)
print(ans)


s = input()
n = len(s)+1
ans = 0
ls = [0]*n

tmp = 0

for i in range(n-1):
    if s[i] == "<":
        if i < n-2:
            if s[i+1] == "<":
                    tmp += 1
                    ans += tmp
            else:
                tmp += 1
                ans += tmp
                ls[i+1] = tmp
                tmp = 0
        else:
            tmp += 1
            ans += tmp
    else:
        tmp = 0
tmp = 0

for i in range(n-1):
    if s[n-i-2] == ">":
        if n-i-2 > 0:
            if s[n-i-3] == ">":
                tmp += 1
                ans += tmp
            else:
                tmp += 1
                if ls[n-i-2] < tmp:
                    ans += tmp - ls[n-i-2]
                tmp = 0
        else:
            tmp += 1
            ans += tmp

print(ans)

Verdicts: Wrong Answer

Wrong Answer

Wrong Answer

Wrong Answer

Accepted