結果
問題 |
No.935 う し た ぷ に き あ く ん 笑 ビ - ム
|
ユーザー |
![]() |
提出日時 | 2020-03-27 23:27:49 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 722 bytes |
コンパイル時間 | 236 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 322,560 KB |
最終ジャッジ日時 | 2025-01-02 09:50:38 |
合計ジャッジ時間 | 97,603 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 22 WA * 10 TLE * 26 |
ソースコード
from bisect import bisect_right, bisect_left from collections import defaultdict INF = 10**18 N = int(input()) S = input() A = list(map(int, input().split())) Q = int(input()) K = list(map(int, input().split())) enemy = [0] hp = [0] for i in range(N): if S[i] == 'E': enemy.append(enemy[-1] + 1) else: enemy.append(enemy[-1]) hp.append(hp[-1] + A[i]) D = defaultdict(int) for i in range(N): for j in range(i, N): D[hp[j + 1] - hp[i]] = max(D[hp[j + 1] - hp[i]], enemy[j + 1] - enemy[i]) D = [list(d) for d in D.items()] D.sort() tmp = 0 for i in range(len(D)): tmp = max(D[i][1], tmp) D[i][1] = tmp for i in range(Q): print(D[bisect_left(D, [K[i], INF]) - 1][1])