10pts悬赏关注
查看原帖
10pts悬赏关注
471015
CO2_楼主2023/8/18 12:17

rt

#include<bits/stdc++.h>
using namespace std;
int lt,la,lb,lc,cnt,res,i=1,k,l;
string st[50005],sa[50005],sb[50005],sc[50005];
inline void read(int &l,string s[]){
	char c;
	do{
		c=getchar();
	}while(c<=32);
	for(l=1;;++l){
		do{
			s[l]+=c;
			c=getchar(); 
		}while(c>32);
		while(c<=32){
			if(c=='\n'||c==EOF)break;
			c=getchar();
		}
		if(c=='\n'||c==EOF)break;
	}
}
int main(){
	read(lt,st);
	read(la,sa);
	read(lb,sb);
	read(lc,sc);
	for(int j=1;j<=la;++i)
		if(st[i]==sa[j])
			++j;
	cnt+=i-la-1;k=i;i=lt;
	for(int j=lc;j;--i)
		if(st[i]==sc[j])
			--j;
	cnt+=lt-lc-i;l=i;
	for(;k<=l;++k)
		if(st[k]==sb[1]){
			i=k;
			for(int j=1;j<=lb;++i)
				if(st[i]==sb[j])
					++j;
			if(l>=i-1&&res>i-k-lb)res=i-k-lb;
		}
	cout<<cnt+res;
	return 0;
}
2023/8/18 12:17
加载中...