求助
查看原帖
求助
1121438
huangxinyou楼主2023/11/6 22:26
#include<bits/stdc++.h>
using namespace std;
#define FO(i,a,b) for(int i=a;i<=b;i++)
int n,x,cnt[26],sum[100009],ans=1e09;
string s[100009]; 
int main(){
	cin>>n;
	FO(i,1,n)cin>>s[i],sum[i]=sum[i-1]+s[i].size();
	FO(u,1,n){
		bool flag=0;
		int xx=x;
		while(x<n){
			bool k=1;
			FO(i,0,25)if(cnt[i]==0){
				k=0;
				flag=0;
				break;
			}
			if(k==1){
				flag=1;
				break;
			}
			x++;
			for(auto i:s[x])cnt[i-'a']++;
			flag=1;
		}
		if(flag)ans=min(ans,sum[x]-sum[u-1]);
		for(auto i:s[u])cnt[i-'a']--;
	}
	cout<<ans<<"\n";
	return 0;
}
2023/11/6 22:26
加载中...