#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll mod = 1000000007; #define rep(i,n) for(int i=0;i=0;i--) #define all(x) (x).begin(),(x).end() int main() { int n; cin >> n; string s; cin >> s; vector as(n); rep(i, n) cin >> as[i]; int q; cin >> q; vector ks(q); rep(i, q) cin >> ks[i]; for (auto k : ks) { ll maxCount = 0; //倒せる敵の数の最大値を尺取り法で計算 rep(left, n) { int right = left; ll count = 0; ll power = k; while (right < n) { //威力が足りない場合は終了 if (power < as[right]) break; //敵破壊数をカウントアップ if (s[right] == 'E') count++; //威力減衰 power -= as[right]; right++; } //最大値更新 maxCount = max(maxCount, count); } cout << maxCount << endl; } return 0; }