#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()))