google-meme-code-2017/main.py

67 lines
2.1 KiB
Python
Executable File

#!/usr/bin/python3
import sys
def parseInput():
filename = sys.argv[1]
with open(filename) as file:
text = file.readlines()
tokenised = [line.strip().split() for line in text]
videoCount = int(tokenised[0][0])
endpointCount = int(tokenised[0][1])
requestDescriptionCount = int(tokenised[0][2])
cacheCount = int(tokenised[0][3])
cacheSize = int(tokenised[0][4])
videoSizes = [int(video) for video in tokenised[1]]
endpointDatacenterLatencies = []
endpointCacheLatencies = []
i = 2
for endpoint in range(0, endpointCount):
datacenterLatency = int(tokenised[endpoint + i][0])
endpointDatacenterLatencies.append(datacenterLatency)
endpointCacheLatencies.append({})
endpointCacheCount = int(tokenised[endpoint + i][1])
for cache in range(0, endpointCacheCount):
cacheId = int(tokenised[endpoint + 1 + cache + i][0])
cacheLatency = int(tokenised[endpoint + 1 + cache + i][1])
endpointCacheLatencies[endpoint][cacheId] = cacheLatency
i += endpointCacheCount
i += endpointCount
requestDescriptions = []
for video in range(0, videoCount):
requestDescriptions.append({})
for requestDescription in range(0, requestDescriptionCount):
video = int(tokenised[i + requestDescription][0])
endpoint = int(tokenised[i + requestDescription][1])
requestCount = int(tokenised[i + requestDescription][2])
requestDescriptions[video][endpoint] = requestCount
return videoCount, endpointCount, cacheCount, videoSizes, endpointDatacenterLatencies, endpointCacheLatencies, requestDescriptions
def printOutput(caches):
print(len(caches))
for cacheId, cacheVideos in caches.items():
print(" ".join(str (i) for i in [cacheId] + cacheVideos))
def main():
videoCount, endpointCount, cacheCount, videoSizes, endpointDatacenterLatencies, endpointCacheLatencies, requestDescriptions = parseInput()
# TODO: everything
#caches[0] = [1, 2, 3]
#caches[2] = [1, 2, 3]
printOutput(caches)
if __name__ == '__main__':
main()