#include<stdio.h>
#include<stack>
#define low(x) (x&-x)
using namespace std;
char a[1000005],b[1000005];
stack<int> s[1000];
int C[2000005]={0},n;
void add(int x,int k){
for(int i=x;i<=n;i+=low(i))
C[i]+=k;
}
int cnt(int x){
int i,ans=0;
for(i=x;i>0;i-=low(i))
ans+=C[i];
return ans;
}
int main(){
long long int ans=0,i,x;
scanf("%d",&n);
scanf("%s%s",&a[1],&b[1]);
for(i=1;i<=n;i++)
s[a[i]].push(i),add(i,1);
for(i=n;i>=1;i--){
x=s[b[i]].top();
s[b[i]].pop();
ans+=i-cnt(x);
add(x,-1);
}
printf("%lld\n",ans);
}
沒有留言:
張貼留言