题目描述
你有两个机器人,站在平面上的两个点上,(x1,y1) (x2,y2)

机器人每次可以向上下左右四个方向中的某个方向移动一个单位

你给两个机器人发送了同样的指令序列,一个指令需要花一秒执行
但是两个机器人可能有一些bug,他们各自可能会忽略掉一些指令,可能会忽略所有指令,也可能一个指令都不会忽略
两个机器人如果移动到了同一个位置就会爆炸
你的任务是判断是否有可能爆炸

输入描述:
第一行输入四个整数x1,y1,x2,y2
-25 ≤ x1,y1,x2,y2 ≤ 25

第二行输入一个字符串表示指令序列,包含'U','R','L','D'四种字符

输出描述:
如果可能爆炸输出"Explosion"
否则输出"Safe"

题目解释:
因为机器人会忽略一些指令,那我们把所有不利于我们判断的指令都忽略就可以了,每有一个指令,我们进行判断(可以理解为让其中一个机器人动(让两者接近的),另一个不动(如果动的话会让两者远离))。机器人的位置是很重要的,解决这道题的关键是把握好位置的x的差值和y的差值,如果判断的结果满足下面代码的条件,则......(看下面代码的具体操作)

欢迎大家提出问题,我看到的话会积极给大家解决,别忘记给小毅儿点个赞哦。

#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;
int main ()
{

    int x1,x2,y1,y2,x=0,y=0;
    cin >> x1 >> y1 >> x2 >> y2;

    char a[10000];
    cin >> a ;

    int len = strlen(a);
    for (int i=0;i<len;i++)
    {
        if(a[i]=='U'||a[i]=='D')y++;
        if(a[i]=='L'||a[i]=='R')x++;
    }

    int x3=fabs(x1-x2);
    int y3=fabs(y1-y2);

    if( y>=y3 && x>=x3 ) cout << "Explosion" << endl;
    else  cout << "Safe" << endl;

    return 0;
}