7-3 一维世界的纷争 (C++) 简单详细

 代码简单,难的点在于读懂题目

帝国A和帝国B统治着一维世界,帝国A的首都位于X,帝国B的首都位于Y,−100≤X<Y≤100。帝国A的国王认为城市x1​,x2​,…,xN​属于他的国家(这些城市不重复);帝国B的国王认为城市y1​,y2​,…,yM​属于他的国家(这些城市不重复),−100≤xi​,yi​≤100,且xi​不等于X,yi​不等于Y。城市都位于整数点上,如果存在一个城市Z满足下面三个条件,帝国A和帝国B将达成和平协议,否则,两国将会发生战争。三个条件如下:

  • X< Z ≤ Y
  • x1​,x2​,…,xN ​< Z
  • y1​,y2​,…,yM ​≥ Z

输入格式:

第一行输入N,M,X,Y四个整数,接下来2行分别是N个xi​和M个yi​的值。整数值之间都用空格隔开。具体如下:

N M X Y

x1​ x2​ … xN​

y1​ y2​ … yM​

输出格式:

用首都表示国家,输出两国是否会爆发战争,具体格式请参见样例。

输入样例1:

3 2 10 20
8 15 13
16 22

结尾无空行

输出样例1:

10 and 20: No War

结尾无空行

输入样例2:

4 2 -48 -1
-20 -35 -91 -23
-22 66

结尾无空行

输出样例2:

-48 and -1: War

结尾无空行

输入样例3:

5 3 6 8
-10 3 1 5 -100
100 6 14

结尾无空行

输出样例3:

6 and 8: War

结尾无空行

代码如下:

​
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a, b, c1, c2;
    cin>> a>> b>> c1>> c2;
    int cc1[a],cc2[b+1];
  //c1为国家1首都, c2为国家2首都, cc1国家1包含的城市, cc2为国家2包含的城市
    for(int i = 0; i < a; ++i )
    {
        cin>> cc1[i];
    }
    for(int i = 0; i < b; ++i ) 
    {
        cin>> cc2[i];
    }
  //存城市信息
    int maxc1, minc2;
    sort (cc1, cc1+a);
    sort (cc2, cc2+b);
    maxc1 = cc1[a-1];
    minc2 = cc2[0]<c2? cc2[0]: c2;

  //z找到国家1中数字最大的城市和国家2中数字最小的城市
    
    if( maxc1<c2 &&  minc2>c1  &&  minc2 <= c2  &&  maxc1<minc2)
        cout<<c1<<" and "<<c2<<": No War";
    else
        cout<<c1<<" and "<<c2<<": War";

    return 0;
}

​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值