import math

class County:
    def __init__(self, name, values):
        self.name = name
        self.values = values
    def distance(self, othervals):
        dist = 0
        for i in range(len(self.values)):
            dist += abs(self.values[i]-othervals[i])
        return dist

class Cluster:
    def __init__(self):
        self.centroid = []
        self.contents = []
    def updateCentroid(self):
        #your code here
    def names(self):
        names = ""
        for c in self.contents:
            names += c.name + "; "
        return names
    def clear(self):
        self.contents = []

def readData(filename):
    #your code here
    return counties

def normalizeCounties(counties):
    #your code here

def initClusters(counties, num):
    clusters = []
    for i in range(num):
        newcluster = Cluster()
        newcluster.centroid = counties[i].values[:]
        clusters.append(newcluster)
    return clusters

def placeCounties(counties, clusters):
    #your code here

def updateCentroids(clusters):
    for c in clusters:
        c.updateCentroid()

def clearClusters(clusters):
    for c in clusters:
        c.clear()

def writeOutput(clusters, filename):
    #your code here

def kmeans(infile, outfile, k, cycles):
    counties = readData(infile)
    normalizeCounties(counties)
    clusters = initClusters(counties, k)
    for i in range(cycles):
        clearClusters(clusters)
        placeCounties(counties, clusters)
        updateCentroids(clusters)
    writeOutput(clusters, "output.txt")

kmeans("counties.txt", "output.txt", 30, 120)


