大佬帮蒟蒻一把吧_/\_
#include<bits/stdc++.h>
using namespace std;
bool x[200010],d[200010];
int a[200010];
int l[200010],r[200010];
int main(){
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q;
int n,sum=0;
cin>>n;
vector<pair<int,int>> ans;
char op;
d[0]=1;
for(int i=1;i<=n;i++) cin>>op,x[i]=(op=='B');
cin>>a[1];
for(int i=2;i<=n;i++){
cin>>a[i];
l[i]=i-1,r[i]=i,r[i-1]=0;
if(x[i]!=x[i-1]) q.push({abs(a[i]-a[i-1]),i});
}
while(q.size()){
auto[c,w]=q.top();
q.pop();
if(d[w]==1||d[l[w]]==1) continue;
sum++;
ans.push_back({l[w],w});
d[l[w]]=d[w]=1;
if(l[l[w]]!=0&&r[w]!=0){
r[l[l[w]]]=r[w];
l[r[w]]=l[l[w]];
if(x[l[l[w]]]!=x[r[w]]) q.push({abs(a[l[l[w]]]-a[r[w]]),r[w]});
}
}
cout<<sum<<endl;
for(auto i:ans){
cout<<i.first<<" "<<i.second<<endl;
}
return 0;
}