28分求助!
查看原帖
28分求助!
1378097
zjinyi楼主2025/1/22 21:53
#include <iostream>
using namespace std;

string ans[20001];
bool flag[20001];

int main()
{
	long long n, f;
	string s;
	cin >> n >> f;
	cin >> s;
	long long cnt1 = 0;
	for (char i = 'a'; i <= 'z'; ++i)
	{
		for (char j = 'a'; j <= 'z'; ++j)
		{
			if (i == j)
			{
				continue;
			}
			long long cnt = 0;
			for (long long k = 2; k < n; ++k)
			{
				char a = s[k - 2], b = s[k - 1], c = s[k];
				if (a == i && b == j && c == j)
				{
					flag[k - 2] = true;
					flag[k - 1] = true;
					flag[k] = true;
					cnt += 1;
				}
			}
			if (cnt >= f)
			{
				ans[cnt1] += i;
				ans[cnt1] += j;
				ans[cnt1] += j;
				cnt1 += 1;
			}
			else if (cnt == f - 1)
			{
				for (long long k = 2; k < n; ++k)
				{
					char a = s[k - 2], b = s[k - 1], c = s[k];
					if (a == i && b == j && flag[k] == false)
					{
						ans[cnt1] += i;
						ans[cnt1] += j;
						ans[cnt1] += j;
						cnt1 += 1;
						break;
					}
					else if (b == j && c == j && flag[k - 2] == false)
					{
						ans[cnt1] += i;
						ans[cnt1] += j;
						ans[cnt1] += j;
						cnt1 += 1;
						break;
					}
					else if (a == i && c == j && flag[k - 1] == false)
					{
						ans[cnt1] += i;
						ans[cnt1] += j;
						ans[cnt1] += j;
						cnt1 += 1;
						break;
					}
				}
			}
		}
	}
	cout << cnt1 << endl;
	for (long long i = 0; i < cnt1; ++i)
	{
		cout << ans[i] << endl;
	}
	
	return 0;
}

提交记录

2025/1/22 21:53
加载中...