显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long b,e,bs,es,bjs=0,ejs=0,ans=0;
long long bip=0,eip=0;
bool bsz[1000000],esz[1000000];
int main(){
freopen("greetings.in","r",stdin);
freopen("greetings.out","w",stdout);
memset(bsz,false,sizeof(bsz));
memset(esz,false,sizeof(esz));
cin>>b>>e;
char pd;
for(long long i=0;i<b;i++){
cin>>bs>>pd;
if(pd=='L'){
for(long long i=bjs;i<bs+bjs;i++){
bsz[i]=false;
}
bjs+=bs;
}
else{
for(long long i=bjs;i<bs+bjs;i++){
bsz[i]=true;
}
bjs+=bs;
}
}
for(long long i=0;i<e;i++){
cin>>es>>pd;
if(pd=='L'){
for(long long i=ejs;i<es+ejs;i++){
esz[i]=false;
}
ejs+=es;
}
else{
for(long long i=ejs;i<es+ejs;i++){
esz[i]=true;
}
ejs+=es;
}
}
// for(long long i=0;i<bjs;i++){
// if(bsz[i]==false){
// cout<<"←"<<endl;
// }
// else cout<<"→"<<endl;
// }
// cout<<" wgbgvrbvjrebvgorvbeivjhberhvbirh";
// for(long long i=0;i<ejs;i++){
// if(esz[i]==false){
// cout<<"←"<<endl;
// }
// else cout<<"→"<<endl;
// }
long long max;
if(bjs>ejs){
max=bjs;
}
else max=ejs;
bool fenli=false;
for(long long i=0;i<max;i++){
if(bsz[i]==true)bip++;
else if(bjs>i)bip--;
if(esz[i]==true)eip++;
else if(ejs>i)eip--;
if(bip==eip){
if(fenli==true){
ans++;
fenli=false;
}
}
else fenli=true;
}
cout<<ans;
return 0;
}