求助,11~20点一直wa
查看原帖
求助,11~20点一直wa
138799
jzdywf楼主2021/9/17 22:58
#include<bits/stdc++.h>
using namespace std;
long long t;
long long m,n;
bool Pd[110000];
long long a[110000];
long long b[110000];
long long read(){
	long long r=0;
	char c=getchar();
	while(c<'0'||c>'9'){
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		r=(r<<3)+(r<<1)+c-'0';
		c=getchar();
	}
	return r;
}
bool pd(long long x){
	for(long long i=2;i*i<=x;i++){
		if(x%i==0){
			return true;
		}
	}
	return false;
}
int main(){
	t=read();
	while(t--){
		memset(Pd,0,sizeof(Pd));
		n=read(),m=read();
		for(int i=1;i<=n;i++){
			a[i]=read();
		}
		for(int i=1;i<=m;i++){
			b[i]=read();
		}
		sort(a+1,a+1+n);
		sort(b+1,b+1+m);
		bool flag=0;
		long long cnt=0;
		long long head1=1,head2=1;
		while(a[head1]==1){
			head1++;
		}
		while(b[head2]==1){
			head2++;
		}
		while(head2<=m){
			while(a[head1]!=b[head2]){
				head1++;
			}
			while(a[head1]==b[head2]){
				Pd[head1]=1;
				head1++,head2++;
			}
		}
		for(long long i=1;i<=n;i++){
			if(Pd[i]==0&&a[i]!=1){
				cnt++;
				if(cnt>=2){
					flag=1;
					break;
				}
				if(pd(a[i])){
					flag=1;
					break;
				}
			}
		}
		if(flag==1){
			cout<<"NO"<<endl;
		}
		else{
			cout<<"YES"<<endl;
		}
	}
	return 0;
}
2021/9/17 22:58
加载中...