結果

問題 No.3001 ヘビ文字列
ユーザー titia
提出日時 2025-01-02 00:19:18
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 993 ms / 1,500 ms
コード長 823 bytes
コンパイル時間 361 ms
コンパイル使用メモリ 82,032 KB
実行使用メモリ 276,992 KB
最終ジャッジ日時 2025-01-02 00:20:13
合計ジャッジ時間 46,293 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 83
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import sys
input = sys.stdin.readline
S=input().strip()
LEN=len(S)
C=[0]*26
ANS=LEN
ind=-1
for s in S:
C[ord(s)-65]+=1
for i in range(26):
x=C[i]
if ANS>LEN-x:
ANS=LEN-x
ind=[chr(i+65)]
x=LEN
for t in range(2,LEN):
if x%t==0:
while x%t==0:
x//=t
dis=LEN//t
score=0
L=[]
for i in range(dis):
C=[0]*26
for j in range(t):
C[ord(S[j*dis+i])-65]+=1
MAX=0
indm=""
for j in range(26):
if MAX<C[j]:
MAX=C[j]
indm=j
score+=t-MAX
L.append(chr(indm+65))
if score<ANS:
ANS=score
ind=L
LANS=ind*(LEN//len(ind))
print("".join(LANS))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0