CF2035A.Sliding

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Sliding

题目描述

在有 nn 行和 mm 列的人群中,每个人都有一个编号,从左到右,从上到下排列。具体来说,第 rr 行第 cc 列的位置表示为 (r,c)(r, c),其编号为 (r1)m+c(r-1) \cdot m + c

现在,位于位置 (r,c)(r, c) 的人决定离开。假设这个人的编号是 ii,那么所有编号大于 ii 的人会依次前移,占据编号 j1j-1 的人的初始位置。例如:对于 n=2n=2m=3m=3r=1r=1c=2c=2 的情况,如下图所示。

你的任务是计算每个受影响的人移动的曼哈顿距离之和。对于一个从位置 (r0,c0)(r_0, c_0) 移动到位置 (r1,c1)(r_1, c_1) 的人,其移动的曼哈顿距离定义为 r0r1+c0c1|r_0 - r_1| + |c_0 - c_1|

输入格式

第一行输入一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来每个测试用例包含四个整数 nnmmrrcc1rn1061 \le r \le n \le 10^61cm1061 \le c \le m \le 10^6),表示行数、列数,以及离开者的初始位置。

输出格式

对于每个测试用例,输出一个整数,表示所有移动的人其曼哈顿距离之和。

说明/提示

  • 对于第一个测试用例,编号为 22 的人离开,编号为 33445566 的人需要移动,其移动距离分别为 11331111。因此,答案是 1+3+1+1=61 + 3 + 1 + 1 = 6
  • 对于第二个测试用例,编号为 33 的人离开,其后编号为 44 的人移动,答案为 11

本翻译由 AI 自动生成

样例

4
2 3 1 2
2 2 2 1
1 1 1 1
1000000 1000000 1 1
6
1
0
1999998000000

在线编程 IDE

建议全屏模式获得最佳体验