样例没过/kel
查看原帖
样例没过/kel
336603
出言不逊王子楼主2020/7/22 09:07

RT,全输出WRONG

代码如下。

#include<bits/stdc++.h>
#define ns "-1"
#define fs(i,x,y,z) for(ll i=x;i<=y;i+=z)
#define ft(i,x,y,z) for(ll i=x;i>=y;i+=z)
#define ll long long
#define ull unsigned long long
#define db double
#define ms(a,b) memset(a,b,sizeof(a))
#define sz(a) sizeof(a)
using namespace std;
const int rw[]={-1,0,1,0,-1,1,-1,1},cl[]={0,1,0,-1,-1,1,1,-1};
const int N=100001,inf=0x3f3f3f3f;
const int daynum[]={114514,31,28,31,30,31,30,31,31,30,31,30,31};
const db E=2.718281828459,pi=acos(-1.0),eps=0.0000000001;
inline int read(){
	int date=0,w=1;char c=0;
	while(c<'0'||c>'9'){if(c=='-')w=-1;c=getchar();}
	while(c>='0'&&c<='9'){date=date*10+c-'0';c=getchar();}
	return date*w;
}
struct point{
	bool end;
	int id,con[128];
	point(){
		id=-1;
		ms(con,0);
		end=0;
	}
}a[N];
char z[N][70],k[70],q[70];
int m,w,ans=1,pp;
int main(){
	pp=read();
	while(cin>>z[++w]){
		if(w>=pp) break;
	}
	fs(lzl,1,w,1){
		strcpy(k,z[lzl]);
		int now=0,l=strlen(k)-1;
		fs(i,0,l,1){
			if(a[now].con[k[i]]){
				now=a[now].con[k[i]];
				if(i==l) a[now].end=1;
			}else{
				ans++;
				a[ans].id=k[i];
				a[now].con[k[i]]=ans;
				now=ans;
				if(i==l) a[now].end=1;
			}
		}
	}
	//puts("qwq");
	m=read();
	ans=1;
	while(m--){
		cin>>k;//cout<<k<<'\n';
		int now=0,l=strlen(k)-1;
		fs(i,0,l,1){
			if(a[now].con[k[i]]){
				now=a[now].con[k[i]];
				if(i==l){
					a[now].end++;
					if(a[now].end==2){
						puts("OK");
					}else if(a[now].end==1){
						a[now].end=0;
						puts("WRONG");
					}else{
						puts("REPEAT");
					}
				} 
			}else{
				puts("WRONG");
			} 
		}
	}
	return 0;
}
2020/7/22 09:07
加载中...