結果
| 問題 |
No.2454 Former < Latter
|
| コンテスト | |
| ユーザー |
ntuda
|
| 提出日時 | 2023-09-04 23:37:10 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 669 bytes |
| コンパイル時間 | 432 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 79,080 KB |
| 最終ジャッジ日時 | 2024-06-22 20:51:48 |
| 合計ジャッジ時間 | 3,886 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 15 WA * 8 |
ソースコード
def z_algo(S):
N = len(S)
A = [0] * N
i = 1;
j = 0
A[0] = l = len(S)
while i < l:
while i + j < l and S[j] == S[i + j]:
j += 1
if not j:
i += 1
continue
A[i] = j
k = 1
while l - i > k < j - A[k]:
A[i + k] = A[k]
k += 1
i += k;
j -= k
return A
T = int(input())
for _ in range(T):
N = int(input())
S = input()
A = z_algo(S)
ans = 0
for i in range(1, N):
j = A[i]
if i < j:
ans += 1
elif i + j < N:
if S[j] < S[i + j]:
ans += 1
print(ans)
ntuda