50分求助
查看原帖
50分求助
632955
Cynops楼主2022/11/26 18:58
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,dp[200005];
string s[251],S,x;
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	while(cin >> x,x != ".")
		s[++n] = x,m = max((int)x.size(),m);
	while(cin >> x)
		S += x;
	dp[0] = 1;
	for(int i = 0;i < S.size();i ++)
		for(int j = min(i,m);j >= 1;j --){
			string sub = S.substr(i-j+1,j);
			for(int k = 1;k <= n;k ++)
    			if(s[k] == sub && dp[i-j])
    			    dp[i+1] = 1;
		}
	for(int j = S.size();j >= 0;j --)
		if(dp[j]){
			cout << j;
			return 0;
		}
    return 0;
}

提交记录

2022/11/26 18:58
加载中...