RE10pts求调
查看原帖
RE10pts求调
971817
Bluetooth_wifi楼主2024/11/2 14:48
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<queue>
using namespace std;
const int N=1e6+10;
int n,tot,m;
char a[N][26];
int b[N];
void insert(string s){
	int root=0;
	for(int i=0;i<s.size();i++){
		int u=s[i]-'a';//0~25
		if(!a[root][u]){
			a[root][u]=++tot;
		}
		root=a[root][u];
	}
	b[root]=1;
}
int sch(string s){
	int root=0,u=0;
	for(int i=0;i<s.size();i++){
		u=s[i]-'a';//0~25
		if(!a[root][u]) return 0;
		root=a[root][u];
	}
	if(!b[root]) return 0;
	return root;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		string s;
		cin>>s;
		insert(s);
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		string s;
		cin>>s;
		int k=sch(s);
		if(k){
			if(b[k]==1){
				cout<<"OK"<<endl;
				b[k]++;
			}else{
				cout<<"REPEAT"<<endl; 
			}
		}else{
			cout<<"WRONG"<<endl;
		}
	}
	return 0;
} 
2024/11/2 14:48
加载中...