代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
using namespace std;
using ll = long long;
const int kMaxN = 1e5 + 10;
int n, a[kMaxN], ans = 0;
string s;
int main() {
// freopen("leaders.in", "r", stdin);
// freopen("leaders.out", "w", stdout);
cin >> n >> s;
for (int i = 1; i <= n; ++ i) {
cin >> a[i];
}
int firh = 0;
for (int i = 0; i < n; ++ i) {
if (s[i] == 'H') {
firh = i;
break;
}
}
bool ff = 0, fff = 0;
int firg = 0, endg = 0;
for (int i = 0; i + 1 < firh; ++ i) {
if (i + a[i + 1] >= firh) {
++ ans;
if (s[i] == 'G' && !fff) {
ff = 1;
}
}
if (!fff && s[i] == 'G') {
firg = i;
fff = 1;
}
if (s[i] == 'G') {
endg = i;
}
}
if (!ff && firg + a[firg + 1] >= endg) {
++ ans;
}
cout << ans << '\n';
return 0;
}