#32 WA了,求救
  • 板块CF95A Hockey
  • 楼主sqrt404
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/3 19:55
  • 上次更新2024/4/3 22:34:47
查看原帖
#32 WA了,求救
637410
sqrt404楼主2024/4/3 19:55
#include <bits/stdc++.h>
using namespace std;
int n;
string s, deny[100005], w, g;
char love;
bool check(string s)
{
    for(int i = 1; i <= n; i++) if(s.find(deny[i]) != s.npos) return false;
    return true;
}
bool cmp(string a, string b)
{
    if(a.size() != b.size()) return a.size() < b.size();
    else return a < b;
}
string tosm(string ggg)
{
    for(int i = 0; i < ggg.size(); i++) if(ggg[i] <= 'Z' && ggg[i] >= 'A') ggg[i] += 32;
    return ggg;
}
string back(string gg)
{
	for(int i = 0; i < gg.size(); i++)
	{
		if(s[i] <= 'Z' && s[i] >= 'A') gg[i] -= 32;
	}
	return gg;
}
int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        cin >> deny[i];
        deny[i] = tosm(deny[i]);
    }
    cin >> s >> love;
    w = tosm(s), g = tosm(s);
    sort(deny + 1, deny + n + 1, cmp);
    for(int i = 1; i <= n; i++)
    {
    	int flag = 0;
    	while(g.find(deny[i], flag) != g.npos)
		{
			int pos = g.find(deny[i], flag);
			for(int j = pos; j < deny[i].size() + pos; j++)
			{
				if(deny[i][j - pos] == love)
                {
                    if(love == 'a')
                    {
                        if(w[j] == 'b') w[i] = 'a';
                        else if(w[j] == 'a') w[j] = 'b';
                    }
                    else if(love == 'b')
                    {
                        if(w[j] == 'a') w[i] = 'b';
                        else if(w[j] == 'b') w[j] = 'a';
                    }
                    else w[j] = 'a';
                 }
				else
                {
                    w[j] = love;
                }
			}
			flag = deny[i].size() + pos;
		}
	}
    cout << back(w) << endl;
    return 0;
}
2024/4/3 19:55
加载中...