結果
問題 |
No.1859 ><<<
|
ユーザー |
|
提出日時 | 2021-11-27 00:59:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 196 ms / 2,000 ms |
コード長 | 850 bytes |
コンパイル時間 | 153 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 167,792 KB |
最終ジャッジ日時 | 2024-07-04 16:29:08 |
合計ジャッジ時間 | 9,561 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 41 |
ソースコード
def Z_algorithm(S): N=len(S) arr = [0]*N arr[0] = N i,j = 1,0 while i<N: while i+j<N and S[j]==S[i+j]: j += 1 arr[i]=j if not j: i += 1 continue k = 1 while i+k<N and k+arr[k]<j: arr[i+k] = arr[k] k += 1 i += k; j -= k return arr def solve(n, a, s): t = [] a = a + a for i in range(2 * n - 2): if a[i] < a[i + 1]: t.append('<') else: t.append('>') n -= 1 t = ''.join(t) l = Z_algorithm(s + t)[n:] ans = -1 #print(''.join(list(s + t)[n:])) #print(l) for i in range(n + 1): if l[i] >= n: ans = i break return ans n = int(input()) a = list(map(int,input().split())) s = input() print(solve(n, a, s))