def getRoundSeeds(bracketVector, roundNum):
    roundSeeds = []
    regionWinners = []

    # Compute Rounds 1-4 scores
    for region in range(4):
        start = 15 * region
        end = start + 8
        regionVector = bracketVector[start:end]

        seeds = [1, 16, 8, 9, 5, 12, 4, 13, 6, 11, 3, 14, 7, 10, 2, 15]

        stopRound = min(roundNum, 5)

        for r in range(1, stopRound):
            seeds = applyRoundResults(seeds, regionVector)

            start = end
            end += int(len(seeds) / 2)
            regionVector = bracketVector[start:end]

        regionWinners.append(seeds[0])

        if stopRound < 5:
            for seed in seeds:
                roundSeeds.append(seed)

    if stopRound < 5:
        return roundSeeds

    if roundNum == 5:
        return regionWinners

    # Compute Rounds 5-6
    finalFourVector = bracketVector[-3:]

    finalSeeds = []

    if finalFourVector[0] == 1:
        finalSeeds.append(regionWinners[0])
    else:
        finalSeeds.append(regionWinners[1])

    if finalFourVector[1] == 1:
        finalSeeds.append(regionWinners[2])
    else:
        finalSeeds.append(regionWinners[3])

    if roundNum == 6:
        return finalSeeds

    championSeeds = []
    if finalFourVector[2] == 1:
        championSeeds.append(finalSeeds[0])
    else:
        championSeeds.append(finalSeeds[1])

    return championSeeds
def getWinner(bracketVector):
	championInfo = []
	regionWinners = []

	# Compute Rounds 1-4 scores
	for region in range(4):
		start = 15 * region
		end = start + 8
		regionVector = bracketVector[start:end]

		seeds = [1, 16, 8, 9, 5, 12, 4, 13, 6, 11, 3, 14, 7, 10, 2, 15]

		for r in range(1, 5):
			seeds = applyRoundResults(seeds, regionVector)

			start = end
			end += int(len(seeds) / 2)
			regionVector = bracketVector[start:end]

		regionWinners.append(seeds[0])

	# Compute Rounds 5-6 scores
	finalFourVector = bracketVector[-3:]

	championshipGameSeeds = applyRoundResults(regionWinners, finalFourVector[0:2])

	championRegion = 0
	if finalFourVector[2] == 1:
		championRegion = 1 - finalFourVector[0]
		ffLoserRegion = finalFourVector[0]
	else:
		championRegion = 3 - finalFourVector[1]
		ffLoserRegion = 2 + finalFourVector[1]

	championInfo.append(championshipGameSeeds[1 - finalFourVector[2]])
	championInfo.append(championRegion)
	championInfo.append(regionWinners[ffLoserRegion])
	championInfo.append(ffLoserRegion)
	return championInfo
for year in range(1985, cutoffYear + 1):
	bracketVector = getActualBracketVector(year)

	ffSeeds = []

	# Compute Final Four seeds
	for region in range(4):
		start = 15 * region
		end = start + 8
		regionVector = bracketVector[start:end]

		seeds = [1, 16, 8, 9, 5, 12, 4, 13, 6, 11, 3, 14, 7, 10, 2, 15]

		for r in range(1, 5):
			seeds = applyRoundResults(seeds, regionVector)
			start = end
			end += int(len(seeds) / 2)
			regionVector = bracketVector[start:end]

		ffSeeds += seeds

	for posIndex in range(4):
		seedNum = ffSeeds[posIndex]
		freqs['{0}_{1:02d}'.format(posIndex, seedNum)] += 1

seedNums = range(1, 17)
pooledFreqCounts = [0 for i in range(16)]
pooledFreqs = dict(zip(seedNums, pooledFreqCounts))

for seedNum in range(1, 17):