Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def eval(data):
- st=set(data[1])
- need=data[1]
- lst=data[0]
- ans=[]
- stlst=[]
- for i in range(len(lst)):
- stlst.append(set(lst[i][1]))
- stlst[i]=stlst[i]&st
- while(len(need)):
- mx=[lst[0][0], 0]
- while mx[1]<len(need) and (need[mx[1]] in stlst[0]):
- mx[1]+=1
- for i in range(1, len(lst)):
- cur=[lst[i][0], 0]
- while cur[1]<len(need) and(need[cur[1]] in stlst[i]):
- cur[1]+=1
- if cur[1]>mx[1]:
- mx=cur
- need=need[mx[1]:]
- ans+=mx[0]*mx[1]
- return ans
- data=([('Антон', ['строить крыльцо', 'ставить окна', 'рубить']), ('Егор', ['таскать', 'вешать люстру', 'красить', 'строить крыльцо']), ('Саша', ['лакировать', 'вешать шторы', 'сверлить']), ('Леша', ['закупать материалы', 'рубить', 'пилить', 'таскать', 'ставить окна']), ('Женя', ['вешать шторы', 'сверлить', 'таскать', 'лакировать']), ('Витя', ['закупать материалы', 'строить крыльцо', 'сверлить', 'пилить', 'укладывать пол', 'лакировать']), ('Коля', ['носить', 'вытачивать', 'красить', 'таскать', 'ставить окна'])], ['закупать материалы', 'пилить', 'пилить', 'сверлить', 'рубить', 'пилить', 'красить', 'носить', 'пилить'])
- print(eval(data))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement