| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- def inRange(code,pos):
- if code[pos+1] <= len(code) and code[pos+2] <= len(code) and code[pos+3] <= len(code):
- return True
- else:
- return False
- def compute(code):
- for v in range(len(code)):
- code[v] = int(code[v])
- #print(code)
- i = 0
- while i < (len(code) - 3):
- if code[i] == 1:
- if not inRange(code,i):
- return -1
- code[code[i + 3]] = code[code[i + 2]] + code[code[i + 1]]
- i += 4
- if code[i] == 2:
- if not inRange(code,i):
- return -1
- code[code[i + 3]] = code[code[i + 2]] * code[code[i + 1]]
- i += 4
- if code[i] == 99:
- i += 1
- return code
- if code[i] not in (1,2,99):
- i += 1
- #return -1
- file = open("2_2.txt","r")
- input = file.read()
- for noun in range(100):
- for verb in range(100):
- code = input.replace("\n","").split(",")
- code[1] = noun
- code[2] = verb
- ret = compute(code)
- #print(ret)
- if ret == -1:
- continue
- if ret[0] == 19690720:
- print(ret)
- print("---done---")
- exit()
|