#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin >> n >> m;
vector<int> C(n+1);
for(int i=1;i<=n;i++) {
char c;cin>>c;
if(c=='R')C[i]=1;
}
vector<int> A(m+1);
for(int i=1;i<=m;i++)cin>>A[i];
auto simulate = [&](int x) {
int rightFace = 0;
for(int i=1;i<x;i++)if(C[i])rightFace++;
int leftFace = 0;
for(int i=x+1;i<=n;i++)if(C[i]==0)leftFace++;
// right exit
if(leftFace<=rightFace) {
int idx = x;
if(leftFace)for(int i=x-1;i;i--) {
if(C[i])leftFace--;
if(leftFace==0) {
idx = i;
break;
}
}
for(int i=idx;i<=n;i++)C[i]=0;
} else {
int idx = x;
rightFace++;
for(int i=x+1;i;i++) {
if(C[i]==0)rightFace--;
if(rightFace==0) {
idx = i;
break;
}
}
for(int i=1;i<=idx;i++)C[i]=1;
}
};
int Q,L,R;
cin >> Q >> L >> R;
for(int i=L;i<=R;i++)simulate(A[i]);
int ans = 0;
for(int i=1;i<=n;i++)if(C[i])ans++;
cout << ans << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |