E - Happy Friends CodeForces - 515B


Drazil有很多朋友,他们中有些人是快乐的,有些人是不快乐的。 Drazil想让他的朋友变得快乐。于是,他发明了以下的计划。
 
在他的朋友中,有n个男孩和m个女孩。我们把男孩从0到n-1编号,女孩从0到m-1编号。在第i天,Drazil邀请第i mod n个男孩和第i mod m个女孩一起吃饭(注意i从0开始)。如果两个人之中有一个是快乐的,那么另外一个也会变得快乐,否则,这两个人的心情状态不会改变。一个人一旦成为快乐的人(或者他原本就是快乐的),他能保持永远快乐。
 
Drazil想知道他是否可以使用该计划,使得他所有的朋友都变得快乐。
Input
 
第一行包含两个整数n和m(1≤n,m≤100)。
 
第二行包含整数b(0≤b≤n),表示Drazil的男生朋友中目前是快乐男生的数量,然后有b个不同的整数X1,X2,...,Xb(0≤Xi<n),表示这些快乐男生的编号。
 
第三行包含整数g(0≤g≤m),表示Drazil的女生朋友中目前是快乐女生的数量,然后有g个不同的整数Y1,Y2,...,Yg(0≤Yj<m),表示这些快乐女生的编号。
 
题目保证输入数据中至少有一个人不快乐。
Output
 
如果 Drazil能使得所有的朋友都变得快乐,就输出Yes,否则输出No
Sample Input
输入样例1:
2 3
0
1 0
 
输入样例2:
2 4
1 0
1 2
 
输入样例3:
2 3
1 0
1 1
Sample Output
输出样例1:
Yes
 
输出样例2:
No
 
输出样例3:
Yes

#include<stdio.h>
int max(int x,int y)
{
	return x>y?x:y;
}
int main()
{
	int n,m,b,g,i,x,y,mx;
	while(scanf("%d %d",&n,&m)!=EOF)
	{
		mx = max(n,m);
		int flg = 1;
		int nn[100]={0},mm[100]={0};
		scanf("%d",&b);
		for (i=0;i<b;i++)
		{
			scanf("%d",&x);
			nn[x] = 1;
		}
		scanf("%d",&g);
		for (i=0;i<g;i++)
		{
			scanf("%d",&y);
			mm[y] = 1;
		}
		for (i=0;i<mx*mx;i++)
		{
			if (nn[i%n]==1)
				mm[i%m]=1;
			if (mm[i%m]==1)
				nn[i%n]=1;
		}
		for (i=0;i<n;i++)
			if (nn[i]==0)
				flg = 0;
		for (i=0;i<m;i++)
			if (mm[i]==0)
				flg = 0;
		if (flg)
			printf("Yes\n");
		else
			printf("No\n");	
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值