結果
問題 |
No.935 う し た ぷ に き あ く ん 笑 ビ - ム
|
ユーザー |
|
提出日時 | 2022-05-14 17:03:30 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,526 ms / 2,000 ms |
コード長 | 668 bytes |
コンパイル時間 | 169 ms |
コンパイル使用メモリ | 82,956 KB |
実行使用メモリ | 77,912 KB |
最終ジャッジ日時 | 2024-07-23 03:00:55 |
合計ジャッジ時間 | 35,107 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 58 |
ソースコード
import bisect N = int(input()) S = input() lsA = list(map(int,input().split())) Q = int(input()) lsK = list(map(int,input().split())) ll = [0] for i in range(N): if S[i] == 'E': ll.append(ll[-1]+1) else: ll.append(ll[-1]) lssum = [0] for i in range(N): lssum.append(lssum[-1]+lsA[i]) for i in range(Q): q = lsK[i] ans = 0 for j in range(1,N+1): d = lssum[j] v = d - q ind = bisect.bisect_left(lssum, v) ecnt1 = ll[j]-ll[ind] d = lssum[j-1] v = d+q ind = bisect.bisect_right(lssum, v) ecnt2 = ll[ind-1]-ll[j-1] ans = max(ans,ecnt1,ecnt2) print(ans)