結果
| 問題 |
No.238 Mr. K's Another Gift
|
| コンテスト | |
| ユーザー |
しらっ亭
|
| 提出日時 | 2015-07-05 23:44:29 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,229 bytes |
| コンパイル時間 | 132 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 12,472 KB |
| 最終ジャッジ日時 | 2024-07-08 00:59:07 |
| 合計ジャッジ時間 | 4,397 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 WA * 7 RE * 1 |
ソースコード
def o2(f, r, m):
flag = False
i = 0
j = 0
af = []
ar = []
while i < len(f):
if f[i] == r[j]:
af.append(f[i])
ar.append(r[j])
i += 1
j += 1
else:
if flag:
return 'NA'
flag = True
af.append(r[j])
ar.append(r[j])
j += 1
return ''.join(af) + m + ''.join(ar[::-1])
def odd(s):
L = len(s) >> 1
if L == 0:
return s + s
m = s[L]
f = s[:L]
l = s[L + 1:]
r = l[::-1]
if f == r:
return f + m + m + l
if m != f[-1] and m != l[1]:
return 'NA'
if m == f[-1]:
return o2(f[:-1], r, m)
elif m == r[-1]:
return o2(r[:-1], f, m)
def even(s):
L = len(s) >> 1
f = s[:L]
l = s[L:]
r = l[::-1]
af = []
ar = []
flag = False
i = 0
j = 0
while True:
if i == j == L:
if not flag:
af.append('x')
break
elif i == L:
ar.append(r[j:])
break
elif j == L:
af.append(f[i:])
break
if f[i] == r[j]:
af.append(f[i])
ar.append(r[j])
i += 1
j += 1
else:
if flag:
return 'NA'
flag = True
if i == j == L - 1:
af.append(r[j])
af.append(f[i])
ar.append(r[j])
break
elif f[i] == r[j + 1]:
af.append(r[j])
af.append(f[i])
ar.append(r[j])
ar.append(r[j + 1])
i += 1
j += 2
elif f[i + 1] == r[j]:
af.append(f[i])
af.append(f[i + 1])
ar.append(f[i])
ar.append(r[j])
i += 2
j += 1
else:
return 'NA'
return ''.join(af) + ''.join(ar[::-1])
def solve(s):
if len(s) % 2 == 0:
ans = even(s)
else:
ans = odd(s)
print(ans)
def main():
s = input()
solve(s)
if __name__ == '__main__':
main()
しらっ亭