Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def swap(is_right, From, To, s):
- if From==To and (is_right or len(trains[From])==1):
- return
- el = trains[From].pop(len(trains[From])-1 if is_right else 0)
- if not trains[To] or el[0] != trains[To][-1][0]:
- trains[To].append(el)
- else:
- trains[To][-1] = (el[0], trains[To][-1][1] + el[1])
- length = el[1]
- s[0] = 1
- print('R' if is_right else 'L', length, From+1, To+1)
- return True
- def check(char, to_place):
- s = [0]
- for i in range(n):
- while trains[i] and trains[i][0][0] == char:
- if not swap(False, i, to_place, s):
- break
- for i in range(n):
- while trains[i] and trains[i][-1][0] == char:
- if not swap(True, i, to_place, s):
- break
- return s[0]
- def find():
- for train in trains:
- if len(train) > 1:
- return train[0][0]
- n = int(input())
- trains = []
- for i in range(n):
- cur = input()
- trains.append([])
- for char in cur:
- if trains[i] and char == trains[i][-1][0]:
- trains[i][-1] = (char, trains[i][-1][1]+1)
- else:
- trains[i].append((char, 1))
- for i in range(n):
- s = 1
- while s:
- s = 0
- for j in range(i+1):
- if trains[j]:
- s+=check(trains[j][-1][0], j)
- else:
- s+=check(find(), j)
- print(trains)
- # test
- # 19
- # QREUTYIUYREQOIUPIWUOIUYQPOIEWURPIYUORIEYPIORUEPOUYQEROIUPYOIUERPQ
- # PIUQERYOPOIQREYPYPPPPQERYOIUYPIOEURQWOIUYPQEIORUOIUYOPRIEWYPOIUTY
- # QTPIPQREUIEWIUOYWEYROIUYOIUREYERTRETTREQIURYOIUTRQRRRTIREUQYTOIQP
- # POIUERQYOIUYTOQIPEUTRPIUWOERIUYOIUYQEPROIUOWERYIUYEPORWQIUPOIUWEO
- # IUYOIUQIEPROIWUTWOIUYPOIQUEWEQWREQRWERQWPQWYIUEWYPORIYYPOIEYQRWPO
- # QEPWIRUPTOYQEROIUYPQEWOIURPOQIURETPUYPIUYPIUTYPOIUOIQEWUPIUQPTUYP
- # QWPEYROWIUEEEUYPIUQYQWPOIQWYEPIUYPIOTPYEWIORUPYPTRPIUYPQEWOIYRPUY
- # UYPQIWUEYPROIYPOIYTQEPIUYOIUQTYPOEIRUPOWIYPIQYWREIOQPWOIRYPIYQETP
- # POYPUIQEWTYPIUYQPREOIYPOIURPQOEWIYPOIYQEWRPOYPOITERYPIUYRPQOWIEWP
- # QEWPTOYPRIUEPOIUPQWUERYPOIUWQPOIEYPIWYEYEWPEROWYQPIEWYRIUWEYPTUYQ
- # QIUERYWOIUYORIEWYPIRYPIWEYPIYEWOEWPRIYPIOEWYPRIOUEWPOIYRPIYTPOIUQ
- # REPWUYOTIURTYPOIRUPUYOIUEPRYPIYUTYPQEIURPIUEROIUYOIUYTEWIURPOIREW
- # EWIUYWQOIUWEPOIOIEURPIYQPWEOYRIPUPOTIERWUPOYEQWROIUPOERWIPOEIURPO
- # UPQOEYTPIUEYWPOIUQPEWIUPQYTEPIYIOYUPPQUYREPIUYQPEWIUTYIUREWYOIYOR
- # QEWIYOQIURYOEWRPOYUTOEYOIEWRUYIORUEWQPOIUEOIRUWROITUYOEIQRUWPIOWE
- # QEWPIUTOIQUTYPOUIWPIUQPEORIIUTWYOIUYTIEUYORITUPIUORIUQYOIUWPEOIUI
- # QPWEROIUORYOIUTYPOIUERPQOIUPEROQUPWUWEPOIUPORTREUTPIOUPEIOQRWUOIU
- # UOIQYERWOIUYTPQERIUOIUEWQYOIUYQWOEIURYOQWIUWEYOEPRWEIOQRUQUIEWYER
- # QWRUPORIETUOIYRPOITUPIUYTRTWERTETRIUERYOIUYRIOTIYUYIRTITYEPIUTRRE
Advertisement
Add Comment
Please, Sign In to add comment