#Erik Van Till

#Marriotts Ridge High School

#Contest #1

#Senior Div.

#Reg Hahne

##1. 1 under par

##2. 2 under par

##3. 2

##4. A, B, C, D

##5. 4.0

 

 

inputArray = []

#

# Gets Input, turns "1. 3,2,3,3" -> "3 2 3 3"

#

def getInput():

    parNum = 0

    #Reading file

    #FILE = open("golfin.txt","r")

    FILE = open("E:\golfSen.txt","r")

    for line in FILE.readlines():

        inputArray.append(str(line).replace(',', ' '))

    FILE.close()

 

#

# Sums up each player's score

#

def getSums():

    A = 0

    B = 0

    C = 0

    D = 0

    for line in inputArray:

        #print(int(str(line)[0:1]))

        A += int(line[0:1])

        B += int(line[2:3])

        C += int(line[4:5])

        D += int(line[6:7])

    return[A, B, C, D]

 

def getPar(n):

    parB = sumArray[n] - parNum

    if(parB < 0):

        parStringB = (str(parB*(-1)) + ' under par')

    elif(parB > 0):

        parStringB = (str(parB) + ' over par')

    else:

        parStringB = 'par'

    return parStringB

#Number of holes won by the winning player

def numHolesWinner():

    Awins = 0

    Bwins = 0

    Cwins = 0

    Dwins = 0

    for i in range(len(inputArray)):

        currentWinner = getWinner(i)

        if(currentWinner == 0):

            Awins+=1

        elif(currentWinner == 1):

            Bwins+=1

        elif(currentWinner == 2):

            Cwins+=1

        elif(currentWinner == 3):

            Dwins+=1

    leastPos = 0

    leastVal = 0

    for i in range(len(sumArray)):

        if sumArray[i] <= sumArray[leastPos]:

            leastPos = i

            leastVal = sumArray[i]

    if(leastPos == 0):

        return Awins

    elif(leastPos == 1):

        return Bwins

    elif(leastPos == 2):

        return Cwins

    else:

        return Dwins

def getWinner(holeNum):

    line = inputArray[holeNum]

    A = int(line[0:1])

    B = int(line[2:3])

    C = int(line[4:5])

    D = int(line[6:7])

    if((A < B) and (A < C) and (A < D)):

        return 0

    elif((B < A) and (B < C) and (B < D)):

        return 1

    elif((C < A) and (C < B) and (C < D)):

        return 2

    elif((D < A) and (D < B) and (D < C)):

        return 3

def getOrderedScores():

    outStr = ''

    leastPos = 0

    sumArrayTemp = sumArray

    for i in range(len(sumArrayTemp)):

        if sumArrayTemp[i] <= sumArrayTemp[leastPos] and sumArrayTemp[i] != -1:

            leastPos = i

    sumArrayTemp[leastPos] = 500

    if(leastPos == 0):

        outStr += 'A, '

    elif(leastPos == 1):

        outStr += 'B, '

    elif(leastPos == 2):

        outStr += 'C, '

    elif(leastPos == 3):

        outStr += 'D, '

 

    leastPos = 0

    for i in range(len(sumArrayTemp)):

        if sumArrayTemp[i] <= sumArrayTemp[leastPos]:

            leastPos = i

    sumArrayTemp[leastPos] = 500

    if(leastPos == 0):

        outStr += 'A, '

    elif(leastPos == 1):

        outStr += 'B, '

    elif(leastPos == 2):

        outStr += 'C, '

    elif(leastPos == 3):

        outStr += 'D, '

 

    leastPos = 0

    for i in range(len(sumArrayTemp)):

        if sumArrayTemp[i] <= sumArrayTemp[leastPos]:

            leastPos = i

    sumArrayTemp[leastPos] = 500

    if(leastPos == 0):

        outStr += 'A, '

    elif(leastPos == 1):

        outStr += 'B, '

    elif(leastPos == 2):

        outStr += 'C, '

    elif(leastPos == 3):

        outStr += 'D, '

 

    for i in range(len(sumArrayTemp)):

        if sumArrayTemp[i] <= sumArrayTemp[leastPos]:

            leastPos = i

    if(leastPos == 0):

        outStr += 'A'

    elif(leastPos == 1):

        outStr += 'B'

    elif(leastPos == 2):

        outStr += 'C'

    elif(leastPos == 3):

        outStr += 'D'

 

    return outStr

 

def medianScore():

    scoreArray = []

    for line in inputArray:

        scoreArray.append(int(line[0:1]))

        scoreArray.append(int(line[2:3]))

        scoreArray.append(int(line[4:5]))

        scoreArray.append(int(line[6:7]))

    scoreArray.sort()

    return ((scoreArray[17] + scoreArray[18]) / 2)

par = [3, 4, 5, 4, 4, 4, 5, 3, 4]

parNum = 0

for n in par:

    parNum += n

getInput()

sumArray = getSums()

print('1. ' + getPar(1))

print('2. ' + getPar(0))

print('3. ' + str(numHolesWinner()))

print('4. ' + getOrderedScores())

print('5. ' + str(medianScore()))