于是他错误的点名开始了
2024年12月25日小于 1 分钟
#include <bits/stdc++.h>
using namespace std;
const int N = 500010; //长度*单词数:最坏节点个数
string s;
int n, m, ch[N][26], tag[N], tot = 1;
int main()
{
cin >> n;
for (int i = 1; i <= n; ++i)
{
cin >> s;
int u = 1; //1号节点: ''
for (int j = 0; j < s.length(); j++)
{
int c = s[j] - 'a';
if (!ch[u][c])
ch[u][c] = ++tot;
u = ch[u][c];
}
tag[u] = 1;
}
cin >> m;
while (m--)
{
cin >> s;
int u = 1;
for (int j = 0; j < s.length(); ++j)
{
int c = s[j] - 'a';
u = ch[u][c];
if (!u)
break;
}
if (tag[u] == 1)
{
tag[u] = 2;
cout << "OK\n";
}
else if (tag[u] == 2)
cout << "REPEAT\n";
else
cout << "WRONG\n";
}
return 0;
}