結果
問題 | No.2745 String Swap Battle |
ユーザー | PNJ |
提出日時 | 2024-04-20 16:16:23 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 363 ms / 2,000 ms |
コード長 | 898 bytes |
コンパイル時間 | 209 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 96,768 KB |
最終ジャッジ日時 | 2024-10-12 12:03:24 |
合計ジャッジ時間 | 3,361 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
N = int(input()) # K = 1になる。 S = [] for i in range(N): s = input() n = len(s) T = [s[j] for j in range(n)] TT = T[:] TT[-1],TT[-2] = TT[-2],TT[-1] t = ''.join(TT) C = [[-1] for j in range(26)] for j in range(n): C[ord(s[j]) - 97].append(j) TTT = T[:] f = 0 for j in range(n): if f: break c = ord(s[j]) - 97 if c == 0: continue for k in range(c): if C[k][-1] > j: l = C[k][-1] TTT[j],TTT[l] = TTT[l],TTT[j] f = 1 break Q = [t] if f: Q.append(''.join(TTT)) else: for j in range(26): if len(C[j]) >= 3: Q.append(s) break Q.sort() S.append(Q[0]) T = S[:] T.sort() t = T[0] ans = [] for i in range(N): if S[i] == t: ans.append(1) else: ans.append(0) sco = N + 1 - sum(ans) for i in range(N): if ans[i]: ans[i] = sco for res in ans: print(res)