結果
| 問題 | No.935 う し た ぷ に き あ く ん 笑 ビ - ム | 
| コンテスト | |
| ユーザー |  maspy | 
| 提出日時 | 2020-02-02 15:43:53 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 734 bytes | 
| コンパイル時間 | 87 ms | 
| コンパイル使用メモリ | 12,672 KB | 
| 実行使用メモリ | 44,744 KB | 
| 最終ジャッジ日時 | 2024-09-18 20:53:33 | 
| 合計ジャッジ時間 | 45,016 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 36 WA * 22 | 
ソースコード
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
import numpy as np
N = int(readline())
S = np.frombuffer(readline().rstrip(),'S1') == b'E'
A = np.array(readline().split(),np.int64)
Q = int(readline())
K = np.array(read().split(),np.int64)
INF = 10 ** 18
min_power = [INF] * (N+1)
for L in range(N):
    power = A[L:].cumsum()
    n_enemy = np.cumsum(S[L:])
    for p,n in zip(power.tolist(), n_enemy.tolist()):
        if min_power[n] > p:
            min_power[n] = p
for n in range(N-1,-1,-1):
    if min_power[n] > min_power[n+1]:
        min_power[n] = min_power[n+1]
answer = np.searchsorted(min_power, K, 'right') - 1
print('\n'.join(answer.astype(str)))
            
            
            
        