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 = list(input())
N = len(s)
a = [0] * (1+N)
if(s[0] == '<'): p = 0
else: p = 1
count = 0
count2 = 0
sum_ = 0
start = 0
end = 0
for i in range(N):
    if ((s[i] == '>')& (p == 0)):
        #print('a')
        count2 += 1
        p = 1
        max_ = i
    elif(p == 0):
        #print('b')
        count += 1
    elif(s[i] == '<'):
        #print('c')
        end = i
        if(count > count2):
            t = count
            a[max_] = t
            max_ -= 1
            t -= 1
            while(t >= 0):
                a[max_] = t
                max_ -= 1
                t -= 1
            k = 0
            a[end] = 0
            k += 1
            while(k < count2):
                a[end-k] = k
                k += 1
        else:
            t = count2
            a[max_] = t
            max_ += 1
            t -= 1
            while(t >= 0):
                a[max_] = t
                max_ += 1
                t -= 1
            k = 0
            a[start] = 0
            k += 1
            while(k < count):
                a[start+k] = k
                k += 1
        p = 0
        start = i
        count = 1
        count2 = 0
        max_ = 0
        #print(a)
    else:
        #print('d')
        count2 += 1
        
if(count > count2):
    if(max_==0):
        max_= N
    t = count
    a[max_] = t
    max_ -= 1
    t -= 1
    while(t >= 0):
        a[max_] = t
        max_ -= 1
        t -= 1
    k = 0
    a[end] = 0
    k += 1
    while(k < count2):
        a[end-k] = k
        k += 1
else:
    t = count2
    a[max_] = t
    max_ += 1
    t -= 1
    while(t >= 0):
        a[max_] = t
        max_ += 1
        t -= 1
    k = 0
    a[start] = 0
    k += 1
    while(k < count):
        a[start+k] = k
        k += 1
sum(a)

s = list(input())
N = len(s)
a = [0] * (10+N)
if(s[0] == '<'): p = 0
else: p = 1
count = 0
count2 = 0
sum_ = 0
start = 0
end = 0
for i in range(N):
    if ((s[i] == '>')& (p == 0)):
        #print('a')
        count2 += 1
        p = 1
        max_ = i
    elif(p == 0):
        #print('b')
        count += 1
    elif(s[i] == '<'):
        #print('c')
        end = i
        if(count > count2):
            t = count
            a[max_] = t
            max_ -= 1
            t -= 1
            while(t >= 0):
                a[max_] = t
                max_ -= 1
                t -= 1
            k = 0
            a[end] = 0
            k += 1
            while(k < count2):
                a[end-k] = k
                k += 1
        else:
            t = count2
            a[max_] = t
            max_ += 1
            t -= 1
            while(t >= 0):
                a[max_] = t
                max_ += 1
                t -= 1
            k = 0
            a[start] = 0
            k += 1
            while(k < count):
                a[start+k] = k
                k += 1
        p = 0
        start = i
        count = 1
        count2 = 0
        max_ = 0
        #print(a)
    else:
        #print('d')
        count2 += 1
        
if(count > count2):
    if(max_==0):
        max_= N
    t = count
    a[max_] = t
    max_ -= 1
    t -= 1
    while(t >= 0):
        a[max_] = t
        max_ -= 1
        t -= 1
    k = 0
    a[end] = 0
    k += 1
    while(k < count2):
        a[end-k] = k
        k += 1
else:
    t = count2
    a[max_] = t
    max_ += 1
    t -= 1
    while(t >= 0):
        a[max_] = t
        max_ += 1
        t -= 1
    k = 0
    a[start] = 0
    k += 1
    while(k < count):
        a[start+k] = k
        k += 1
sum(a)

s = list(input())
N = len(s)
a = [0] * (10+N)
if(s[0] == '<'): p = 0
else: p = 1
count = 0
count2 = 0
A = 0
start = 0
end = 0

for i in range(N):
    if ((s[i] == '>')& (p == 0)):
        #print('a')
        count2 += 1
        p = 1
        max_ = i
    elif(p == 0):
        #print('b')
        count += 1
    elif(s[i] == '<'):
        #print('c')
        end = i
        if(count > count2):
            count2 -=1
            A += count*(count+1)/2
            A += count2*(count2+1)/2
        else:
            count -=1
            A += count*(count+1)/2
            A += count2*(count2+1)/2
        p = 0
        start = i
        count = 1
        count2 = 0
        max_ = 0
    else:
        #print('d')
        count2 += 1
if(count > count2):
    count2 -=1
    A += count*(count+1)/2
    A += count2*(count2+1)/2
else:
    count -=1
    A += count*(count+1)/2
    A += count2*(count2+1)/2
print(int(A))

Verdicts: Runtime Error

Runtime Error

Accepted