結果
問題 |
No.2715 Unique Chimatagram
|
ユーザー |
![]() |
提出日時 | 2024-04-05 23:27:11 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 2,065 bytes |
コンパイル時間 | 733 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 84,864 KB |
最終ジャッジ日時 | 2024-10-01 03:07:50 |
合計ジャッジ時間 | 4,396 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 5 TLE * 1 -- * 34 |
ソースコード
def oi(): return int(input()) def os(): return input().rstrip() def mi(): return list(map(int, input().split())) # import sys # input = sys.stdin.readline # import sys # sys.setrecursionlimit(10**8) # import pypyjit # pypyjit.set_param('max_unroll_recursion=-1') from collections import defaultdict, Counter input_count = 0 N = oi() dicts = defaultdict(int) dicts_counter = defaultdict(dict) out = [] for _ in range(N): S = "".join(sorted(list(os()))) dicts[S] += 1 dicts_counter[S] = Counter(S) # 包含関係を確認する OK = [] # Aの中にBが含まれていたらTrueを返す def check(A, B, As, Bs): # As = Counter(A) # Bs = Counter(B) keys = set(list(As.keys()) + list(Bs.keys())) if len(A) < len(B): for k in keys: if k not in Bs and k in As: return False if k in As and k in Bs and As[k] > Bs[k]: return False elif len(A) > len(B): for k in keys: if k in Bs and k not in As: return False if k in As and k in Bs and As[k] < Bs[k]: return False else: if set(list(As.keys())) != set(list(Bs.keys())): return False for k in keys: if As[k] != Bs[k]: return False return True OK_list = [] keys = list(dicts.keys()) for i in range(len(keys)): o1 = keys[i] flg = True for j in range(i+1, len(keys)): o2 = keys[j] if check(o1, o2, dicts_counter[o1], dicts_counter[o2]): flg = False break if flg: OK_list.append(o1) alpha = [chr(ord("a")+i) for i in range(26)] output = "-1" flg = False for o in OK_list: for a in alpha: temp = o+a count = 0 for o1 in dicts.keys(): if check(temp, o1, Counter(temp), dicts_counter[o1]): count += dicts[o1] if count == 1: output = temp flg=True break if flg: break print(output)