Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Python profiler results by chuanyao ( 6 years ago )
args = input() 
N = int(args.split(" ")[0])
M = int(args.split(" ")[1])
rules = {}
m2 = []
rules[1] = {
    'c':0
}
for i in range(2, N + 1):
    line = input()
    line = line.split(" ")
    mode = line[0]
    if mode == '1':
        rules[i] = {
            'p': int(line[1]),
            's': int(line[2]),
            'c': 0,
            'f': False,
            'n': 0,
        }
    else:
        rules[i] = {
            'p': int(line[1]),
            's': int(line[2]),
            'c': 0,
            'f': True,
            'n': int(line[3]),
        }

for key in rules:
    if key == 1:
        continue

    if rules[key]['f']:
        current_key = key
        c_n = rules[key]['n'] 
        while True:
            c_n *= rules[current_key]['s']
            current_key = rules[current_key]['p']
            rules[current_key]['c'] += c_n
            if current_key == 1:
                break
            if rules[current_key]['f']:
                break
res = {}
res[1] = M - rules[1]['c']
print(res[1])
for i in range(2, N + 1):
    if rules[i]['f']:
        res[i] = rules[i]['n'] - rules[i]['c']
    else:
        res[i] = int(res[rules[i]['p']]/ rules[i]['s'])
    print(res[i])

 

Revise this Paste

Parent: 107167
Your Name: Code Language: