Submission #626522

#TimeUsernameProblemLanguageResultExecution timeMemory
626522hspark8494Type Printer (IOI08_printer)Cpython 3
80 / 100
1087 ms56968 KiB
class trie: def __init__(self, parent): self.data = {} self.parent = parent self.len = 0 self.end = False words = [] tries = trie(None) n = int(input()) for _ in range(n): word = input() words.append(word) curr = tries ln = len(word) for w in word: if not w in curr.data: curr.data[w] = trie(curr) curr = curr.data[w] p = curr.parent while p: p.len=max(p.len, ln) p = p.parent else: curr.end = True def dfs_trie(curr:trie, result): global n if curr.end: result.append("P") n -= 1 for c in sorted(curr.data.keys(), key=lambda x: curr.data[x].len): result.append(c) dfs_trie(curr.data[c], result) if n>0: result.append("-") result = [] dfs_trie(tries, result) print(len(result)) print("\n".join(result))
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...