1043.从起点是否能达到终点

问题描述
有一个 n×m的地图,给起点FS和终点女生的位置,FS 每一步可以向右或向下走一格,请你输出 FS 成功搭讪所需要的最少步数,若 FS 不能到达这个女生的位置,则输出 Single dog!。

输入
多组数据。
第一行 T (1≤T≤10),表示有 T组数据。
对于每一组数据:
第一行给出 n,m (1≤n,m≤100),表示地图有 n 行 m 列;
第二行给出 x1,y1,表示FS在 x1 行 y1 列;
第三行给出 x2,y 2​, 表示女生在 x2 行 y2列。
行和列均从 1 开始标号,相邻两组数据间有一行空行。
数据保证输入的 (x1​,y1​) 与 (x2,y2) 一定在 n×m 的地图中。

输出
对于每一组数据,若 FS 能够到达女生的位置,输出 FS 搭讪所需要的最少步数;否则输出 Single dog!。
每组数据输出后换行。

#include <cstdio>
using namespace std;
int main() {
    int t, n, m, x1, y1, x2, y2;
    scanf("%d", &t);
    int* re = new int[t];
    int size = t;
    
    int i = 0;
    while (t--) {

        scanf("%d %d", &n, &m);
        scanf("%d %d", &x1, &y1);
        scanf("%d %d", &x2, &y2);
          
        if (x1 > x2 || y1>y2) {
            re[i] = -1;
        }
        else {
            re[i] = y2 - y1 + x2 - x1;
        }
        i++;
    }

    for (int j = 0; j <size; j++) {
        if (re[j] == -1) {
            printf("Single dog!\n");
        }
        else {
            printf("%d\n", re[j]);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值