# AOC Day Script Day XX # Date : 20XX.12.XX # Python Code # Developer : David Bandeira import sys,time from helpingFunctions import * setSampleMode(True) aocDay = identifyDay(sys.argv[0]) aocYear = identifyYear(sys.argv[0]) path = getPath2Data(aocDay,aocYear) filename = getFilename2Data(aocDay) def extractData(data): pageOrdRule=[] updQueue=[] dataBreak = False for dataLine in data: if len(dataLine) == 0: dataBreak = True elif dataBreak == False: x,y = dataLine.split("|") pageOrdRule.append([int(x),int(y)]) elif dataBreak== True: updQueueEntry=[] for dataInput in dataLine.split(','): updQueueEntry.append(int(dataInput)) updQueue.append(updQueueEntry) return [pageOrdRule, updQueue] def findPageOrdRules(pageOrdRule,inputValue): pageRules=[] for pageRule in pageOrdRule: if pageRule[0]==inputValue or pageRule[1]==inputValue: pageRules.append(pageRule) return pageRules def checkRule(queueValue,queueValueNext,pageRules): ret= False for pageRule in pageRules: if queueValue == pageRule[0] and queueValueNext == pageRule[1]: ret = True return ret def validateQueue(queueList,pageRules,queuePos): ret = False queueValue = queueList[queuePos] queueValueNext = queueList[queuePos+1] for i in range(queuePos+1,len(queueList)): return ret def getOrderedQueues(pageOrdRule, updQueue): orderedQueues=[] for queueList in updQueue: for queuePos in range(len(queueList)-1): pageRules = findPageOrdRules(pageOrdRule,queueList[queuePos]) validQueue = validateQueueValue(queueList,pageRules,queuePos) return 0 def taskA (data) -> int: gameScoreA = 0 pageOrdRule, updQueue = extractData(data) res = getOrderedQueues(pageOrdRule, updQueue) return gameScoreA def taskB (data) -> int: gameScoreB = 0 return gameScoreB def task(task: int,data) -> int: score=0 if task == 1: score = taskA(data) elif task == 2: score = taskB(data) return score def main(): showSampleMode() try: data = open(path+'/'+filename).read().strip().split('\n') except: print ('no inputfile found') print ('please check file %s on path %s' % (filename, path)) quit() st=time.time() print ('Day '+aocDay+': Tasks 1: '+ str(task(1,data))+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms') st=time.time() print ('Day '+aocDay+': Tasks 2: '+ str(task(2,data))+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms') if __name__ == "__main__": main()