COL_WIDTH = 11
def format_R(s):
    return (' '*COL_WIDTH + s)[-COL_WIDTH:]

def format_L(s):
    return (s+' '*COL_WIDTH)[:COL_WIDTH]

def format_C(s):
    cw1 = COL_WIDTH//2
    cw2 = COL_WIDTH - COL_WIDTH//2
    s1 = ' '*cw1 + s[:len(s)//2]
    s2 = s[len(s)//2:] + ' '*cw2
    return s1[-cw1:] + s2[:cw2]
    
scores_in = '''ID, Mid (30),Final (100)
P49203, 25, 45
P44949,  5,   100
P50392x, 29,48
P52812a1,27,   8'''.split('\n')

format = format_R
dash_line = ('+' + '-'*COL_WIDTH)*3 + '+\n'
t = dash_line
for i,line in enumerate(scores_in):
    x = [e.strip() for e in line.split(',')]
    t += '|' + format(x[0]) + \
         '|' + format(x[1]) + \
         '|' + format(x[2]) + '|\n'
    if i == 0:
        t += dash_line
t += dash_line
print(t)