ZCMU1304推雪球(数组模拟)

                                                            推雪人

                                                         Time Limit: 1 Sec  Memory Limit: 128 MB
                                                                      Submit: 1083  Solved: 328
                                                                   [Submit][Status][Web Board]

Description

冬天到了,开始下雪了。松神和二哥决定出去推雪人。大家都知道一个雪人由两个雪球组成。松神和二哥决定分工合作,每人分别先滚若干个雪球,然后再组合在一起。一个小时后,松神一共滚了n个雪球,每个雪球的半径分别为a1,a2,a3...,an,与此同时,二哥一共滚了m个雪球,每个雪球的半径分别为b1,b2,b3,...,bn。他们决定每人选择出一个雪球然后推成一个雪人。由于美观的原因,假设两个雪球的半径分别为r1,r2(r1<=r2),他们认为当雪人的两个雪球的半径满足3/2*r1<=r2<=2*r1时,那么这个雪人是美观的。你能告诉他们,他们是否能够组成一个美观的雪人吗?

Input

多组测试数据。
每组测试数据的第一行为两个正整数n,m(1<=n,m<=100)。
第二行为n个由空格分隔的正整数代表松神滚得雪球的半径。
第三行为m个由空格分隔的正整数代表二哥滚得雪球的半径。
所有雪球的半径均不大于100。

Output

对于每组测试数据,若松神和二哥能够组成一个美观的雪人,则输出"Yes",否则输出"No"。

Sample Input

2 1 2 3 2 1 2 4 9 10

Sample Output

Yes No

HINT

题意:

这道题是松神跟二哥推雪球的半径问题,只要有其中的两个雪球满足3/2*r1<=r2<=2*r1,即可输出Yes,反之为No;

思路:

因为数据比较小,100x100的数据量,直接暴力模拟就可以了;

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;//n指松神推的雪球个数,m指的是二哥推的雪球个数
	int a[100],b[100];
	int p,q;//p记录的是两个人推的雪球中的最大值,q指的是最小值 
	while(~scanf("%d%d",&n,&m))
	{
		int flag=0;
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		for(int i=0;i<n;i++)
		{
			scanf("%d",&a[i]);//输入松神推的雪球的半径	
		}
		for(int j=0;j<m;j++)
		{
			scanf("%d",&b[j]);//输入二哥推的雪球的半径 
		}
		 for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                if(a[i]>b[j])
                {
                    p=a[i];//p指的是两者中的最大值 
                    q=b[j];//q指的是两者中的最小值 
                }
                else
                {
                    p=b[j];
                    q=a[i];
                }
                if(p>=(1.5*q)&&p<=2*q)
                    flag=1;
            }
        }
		if(flag==1)
		{
			printf("Yes\n");
		}
		else
		{
			printf("No\n");
		}
	}
	return 0;	
} 

猜你喜欢

转载自blog.csdn.net/rnzhiw/article/details/82555509
今日推荐