推雪人

题目描述

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

输入

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

输出

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

样例输入

2 1 2 3 2 1 2 4 9 10

样例输出

Yes

sum为标识符

为1返回Yes

为0返回No

%lf输入否则有些大小会比较错误

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
    int n,m;
    double a,b;
    double str1[101];
    double str2[101];
    while(cin>>n>>m)
    {
        memset(str1,0,sizeof(str1));
        memset(str2,0,sizeof(str2));
        int sum=0;
        for(int i=0;i<n;i++)
        {
            scanf("%lf",&str1[i]);    //注意是要用double,后面的判断中会用到小数
        }
        for(int i=0;i<m;i++)
        {
            scanf("%lf",&str2[i]);
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                if(str1[i]>str2[j])
                {
                    b=str1[i];
                    a=str2[j];
                }
                else
                {
                    a=str1[i];
                    b=str2[j];
                }

                    if(a*1.5<=b && b<=2*a)
                    {
                        sum=1;
                    }

            }
        }
        if(sum==1)
        {
            cout<<"Yes";
        }
        else   cout<<"No";
        cout<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq1013459920/article/details/81116537
今日推荐