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