27 lines
530 B
Python
27 lines
530 B
Python
|
import sys
|
||
|
|
||
|
def hash(l):
|
||
|
c = 0
|
||
|
for w in l:
|
||
|
c += ord(w)
|
||
|
c *= 17
|
||
|
c = c % 256
|
||
|
return c
|
||
|
|
||
|
B = [ dict() for _ in range(256) ]
|
||
|
|
||
|
for l in sys.stdin.read().split(','):
|
||
|
e = l.find('=')
|
||
|
d = l.find('-')
|
||
|
i = max(e,d)
|
||
|
lbl = l[:i]
|
||
|
box = hash(lbl)
|
||
|
if e > 0: # set
|
||
|
v = int(l[i+1:])
|
||
|
B[box][lbl] = v
|
||
|
elif d > 0: # remove
|
||
|
if lbl in B[box]:
|
||
|
del B[box][lbl]
|
||
|
|
||
|
print(sum((i+1)*(j+1)*v for i, b in enumerate(B) for j,(k,v) in enumerate(b.items())))
|