simushin_pavel

Untitled

Dec 6th, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1.     st=set(data[1])
  2.     need=data[1]
  3.     lst=data[0]
  4.     ans=[]
  5.     stlst=[]
  6.     for i in range(len(lst)):
  7.         stlst.append(set(lst[i][1]))
  8.         stlst[i]=stlst[i]&st
  9.     while(len(need)):
  10.         mx=[lst[0][0], 0]
  11.         while mx[1]<len(need) and (need[mx[1]] in stlst[0]):
  12.             mx[1]+=1
  13.         for i in range(1, len(lst)):
  14.             cur=[lst[i][0], 0]
  15.             while cur[1]<len(need) and(need[cur[1]] in stlst[i]):
  16.                 cur[1]+=1
  17.             if cur[1]>mx[1]:
  18.                 mx=cur
  19.         need=need[mx[1]:]
  20.         ans+=mx[0]*mx[1]
  21.     return ans
  22. data=([('Антон', ['строить крыльцо', 'ставить окна', 'рубить']), ('Егор', ['таскать', 'вешать люстру', 'красить', 'строить крыльцо']), ('Саша', ['лакировать', 'вешать шторы', 'сверлить']), ('Леша', ['закупать материалы', 'рубить', 'пилить', 'таскать', 'ставить окна']), ('Женя', ['вешать шторы', 'сверлить', 'таскать', 'лакировать']), ('Витя', ['закупать материалы', 'строить крыльцо', 'сверлить', 'пилить', 'укладывать пол', 'лакировать']), ('Коля', ['носить', 'вытачивать', 'красить', 'таскать', 'ставить окна'])], ['закупать материалы', 'пилить', 'пилить', 'сверлить', 'рубить', 'пилить', 'красить', 'носить', 'пилить'])
  23. print(eval(data))
Add Comment
Please, Sign In to add comment