100 lines
2.7 KiB
Python
100 lines
2.7 KiB
Python
# 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() |