用户:
枫丹断头之人查看:0 回复:0 评论:0 创建时间:2024-06-19T13:34:32
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<iostream>
#include<cmath>
#include<cstring>
#include<vector>
#include<iostream>
#include<queue>
#define MAX1 1000000005
#define MAX2 200005
#define MAX3 100005
//#include<conio.h>
using namespace std;
int n;
int g,h;
int qg[MAX3],qh[MAX3],qgl[MAX3],qhl[MAX3],y[MAX3];
char c[MAX3];
int main(){
cin>>n;
for(int i = 0;i<n;i++) cin>>c[i];
for(int i = 0;i<n;i++) cin>>y[i];
for(int i = 0;i<n;i++){
qg[i] = qg[i-1];
qh[i] = qh[i-1];
if(c[i]=='G'){
qg[i]++;
}
else{
qh[i]++;
}
}
for(int i = 0;i<n;i++){
if(c[i]=='G'){
if(qg[y[i]]-qg[i-1]>=qg[n]) qgl[i]++;
}
else{
if(qh[y[i]]-qh[i-1]>=qh[n]) qhl[i]++;
}
qgl[i] += qgl[i-1];
qhl[i] += qhl[i-1];
}
for(int i = 0;i<n;i++){
if(c[i]=='G'){
if(qhl[y[i]]-qhl[i-1]>=1 || qgl[i]-qgl[i-1]>=1) g++;
}
else{
if(qgl[y[i]]-qgl[i-1]>=1 || qhl[i]-qhl[i-1]>=1) h++;
}
}
long long ans = g*h;
cout<<ans;
system("pause");
return 0;
}