結果
| 問題 |
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)
PNJ