-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path10033-Interpeter.py
54 lines (50 loc) · 1.46 KB
/
10033-Interpeter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import sys
def int_to_str(num):
if num < 10:
return '00'+str(num)
elif num < 100:
return '0'+str(num)
else:
return str(num)
ncasos = int(sys.stdin.readline())
sys.stdin.readline()
for c in range(ncasos):
regs = [0]*10
RAM = []
while True:
aux = sys.stdin.readline().strip()
if not aux:
break
RAM.append(int(aux))
while(len(RAM)!=1000):
RAM.append(0)
i = 0
contador = 1
while(RAM[i]!=100):
contador+=1
ins = int_to_str(RAM[i])
codi = ins[0]
if codi == '2':
regs[int(ins[1])] = int(ins[2])
elif codi == '3':
regs[int(ins[1])] = ((regs[int(ins[1])] + int(ins[2])) % 1000)
elif codi == '4':
regs[int(ins[1])] = ((regs[int(ins[1])] * int(ins[2])) % 1000)
elif codi == '5':
regs[int(ins[1])] = regs[int(ins[2])]
elif codi == '6':
regs[int(ins[1])] = ((regs[int(ins[1])] + regs[int(ins[2])]) % 1000)
elif codi == '7':
regs[int(ins[1])] = ((regs[int(ins[1])] * regs[int(ins[2])]) % 1000)
elif codi == '8':
regs[int(ins[1])] = RAM[regs[int(ins[2])]]
elif codi == '9':
RAM[regs[int(ins[2])]] = regs[int(ins[1])]
elif codi=='0':
if regs[int(ins[2])] != 0:
i = regs[int(ins[1])]
continue
i+=1
print(contador)
if c != ncasos-1:
print('')