/* -*- coding: utf-8 -*- * * 935.cc: No.935 う し た ぷ に き あ く ん 笑 ビ - ム - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 2000; /* typedef */ typedef long long ll; /* global variables */ char s[MAX_N + 4]; ll as[MAX_N + 1]; int es[MAX_N + 1]; /* subroutines */ /* main */ int main() { int n; scanf("%d%s", &n, s); for (int i = 0; i < n; i++) { int ai; scanf("%d", &ai); as[i + 1] = as[i] + ai; es[i + 1] = es[i] + ((s[i] == 'E') ? 1 : 0); } int q; scanf("%d", &q); while (q--) { int k; scanf("%d", &k); int maxl = 0; for (int i = 0, j = 0; i < n; i++) { while (j < n && as[j + 1] - as[i] <= k) j++; int l = es[j] - es[i]; if (maxl < l) maxl = l; } printf("%d\n", maxl); } return 0; }