第五点WA了 求助
查看原帖
第五点WA了 求助
1082166
nsu23010220305楼主2023/12/1 17:58
#include <iostream>
#include <algorithm>
#include <iomanip>
#define int long long
#define ld long double
using namespace std;
const int N = 1e6 + 100;
int son[N][26],cnt[N],idx;
bool jud[N];
char ss[50];
void insert(char str[]){
	int p = 0;
	for(int i = 0 ; str[i]; i ++){
		int u = str[i] - 'a';
		if(!son[p][u])son[p][u] = ++idx;
		p = son[p][u];
	}
	cnt[p] ++ ;
}
int query(char str[]){
	int p = 0;
	for(int i = 0 ; str[i]; i ++){
		int u = str[i] - 'a';
		if(!son[p][u])return 0;
		p = son[p][u];
	}
	if(cnt[p]==0)return 0;
	if(jud[p] == true)return 2;
	else jud[p] = true;
	return 1;
}
signed main(){
	std::ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	int n , m;
	cin >> n;
	for(int i =1 ; i <= n ; i++){
		cin >> ss;
		insert(ss);
	}
	cin >> m;
	for(int i = 1 ; i <= m ; i ++){
		cin >> ss;
		int temp = query(ss);
		if(temp == 0){
			cout << "WRONG" << endl;
		}else if(temp == 1){
			cout << "OK" << endl;
		}else if(temp == 2){
			cout << "REPEAT" << endl;
		}
	}

	return 0;
}
2023/12/1 17:58
加载中...