Description
Makik 在上次的比赛后沉迷原神,现在要向你展示他给史莱姆排队的能力。
具体而言,我们用一个大写字母来表示一种史莱姆,同种史莱姆之间没有区别,这里我们认为共有 26 种不同类型的史莱姆。
Makik 有一个已经排好队的史莱姆序列 B, 现在又给了你一个还没排好队的史莱姆序列 A, 请问最少多少次操作能把 A 排成 B呢?
这个问题太简单了,所以 Makik 加了个限制条件:
每次移动 A 中的史莱姆的时候,只能将想要移动的史莱姆从原来的位置移动到队头,也就是第一个史莱姆的前面。
请问在这个限制下,最少多少次操作可以将 A 排成 B 呢?
Input
第一行一个数字 nnn, 表示史莱姆序列的长度。
接下来一行 nnn 个大写字母组成的字符串,表示史莱姆序列 A。
再接下来一行 nnn 个大些字母组成的字符串,表示史莱姆序列 B。
Output
一行一个数字,表示最少需要的操作次数。
Sample Input 1
10
SIAJOIWUGB
IBUSJGWAOI
Sample Output 1
7
Hint
数据规模与约定
1≤n≤10^6 , 数据保证至少存在一种方法将 AAA 排成 BBB。
代码
#include<stdio.h>
#define Num 1000006
char a[Num],b[Num];
int main(){
int n;
scanf("%d",&n);
scanf("%s",a+1);
scanf("%s",b+1);
int p=n,q=0;
for(int j=n;j>=1;--j){
if(a[j]==b[p]){
p--;
q=q+1;
}
}
for(int j=200;j>=10;--j){
}
printf("%d\n",n-q);
return 0;
}