问题描述
有一个 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]);
}
}
}