求捞
查看原帖
求捞
735563
Sincerity_Amiya楼主2024/5/1 18:43
#include<bits/stdc++.h>

using namespace std;

map<string,bool> mark;

struct czs
{
	int point[50];
}dic[9000000];

int n,m;
int p = 1;

int main()
{
	cin >> n;
	for(int k = 1;k <= n;k++)
	{
		string s;
		cin >> s;
		int l = s.length();
		int first = 1;
		s = ' ' + s;
		for(int i = 1;i <= l;i++)
		{
			int x = s[i] - 'A';
			if(dic[first].point[x] == 0) dic[first].point[x] = ++x;
			first = dic[first].point[x];
		}
	}

	cin >> m;
	for(int k = 1;k <= m;k++)
	{
		bool flag = false;

		string s;
		cin >> s;
		int l = s.length();
		int first = 1;
		s = ' ' + s;
		for(int i = 1;i <= l;i++)
		{
			int x = s[i] - 'A';
			if(dic[first].point[x] != 0) first = dic[first].point[x];
			else flag = false;
		}

		if(mark[s] == false)
		{
			if(flag == true)
			{
				cout << "OK" << "\n";
				mark[s] = true;
			}
			else cout << "WRONG\n";
		}
		else cout << "REPEAT\n";
	}

	return 0;
}
2024/5/1 18:43
加载中...