· 8 years ago · Aug 11, 2018, 04:12 AM
1#!/usr/bin/env python
2"""(c) gorlum0 [at] gmail.com"""
3import itertools as it
4from sys import stdin
5
6class NetworkXMessageRecovery:
7 def recover(self, messages):
8 res = []
9
10 req = {}
11 for msg in messages:
12 for c in msg:
13 if c not in req: req[c] = set([])
14 for msg in messages:
15 for i, a in enumerate(msg):
16 req[a].update(msg[:i])
17
18 while req:
19 best = min(k for k in req if not req[k])
20 res.append(best)
21 for k in req: req[k].discard(best)
22 del req[best]
23
24 return ''.join(res)
25
26def main():
27 for line in stdin:
28 n = int(line)
29 ## messages = [next(stdin).strip() for _ in xrange(n)]
30 messages = [l.strip() for l in it.islice(stdin, n)]
31
32 print NetworkXMessageRecovery().recover(messages)
33
34if __name__ == '__main__':
35 main()