#F. 旋转舞台(stage)

    Type: FileIO (stage) 1000ms 256MiB

旋转舞台(stage)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

奇幻舞台剧下个月就要公演了,小项需要对舞台进行布置,营造出亦真亦幻的效果。小项把舞台剧分隔成nnmm列的网格,在每个网格内放上颜色各异的砖块用来搭阶梯。在他的想法中,把舞台背景旋转起来后,观众有着场景阶梯上升的感觉。

小项把他手头的砖块按照颜色的深度,把砖块从11n×mn\times m编号,将第11块砖放置到第xxyy列的网格中,之后,按如下方式放置编号为K (K=2,3,4,,n×m)K\ (K=2,3,4,\dots,n\times m)的砖块:

  1. 小项根据K1K-1编号砖块位置的上一行右一列,暂定KK编号砖块的位置。
  2. 如果暂定位置的行号是00,将行号改为nn
  3. 如果暂定位置的行号是n+1n+1,将行号改为11
  4. 如果暂定位置的列号是00,将列号改为mm
  5. 如果暂定位置的列号是m+1m+1,将列号改为11
  6. 如果暂定位置上已经确定了砖块的编号,那么改为K1K-1编号砖块的位置的下一行,然后再检查步骤22~步骤55

小项的舞台很大,他不希望你输出所有的数据,他目前只希望知道pp个位置的砖块编号,以方便他施工。

输入格式

从文件stage.in中读入数据。 输入第一行包含五个整数n,m,p,x,yn,m,p,x,y,分别表示舞台的行数、舞台的列数、小项关心的位置个数、第一个砖块所在的行号、第一个砖块所在的列号。 接下来输入pp行,每行两个整数a,ba,b,表示小项想要查询砖块编号的网格行号、列号。

输出格式

输出到文件stage.out。 输出pp行,每行一个整数,表示对应网格位置的砖块编号。

样例

3 3 3 1 2
1 3
2 2
3 3
6
5
2

样例解释

根据规则,每个网格放置的砖块编号如下:

8 1 6
3 5 7
4 9 2

数据范围

对于所有测试数据:1n,m1000, 1a,xn, 1b,ym1\le n,m\le 1000,\ 1\le a,x\le n,\ 1\le b,y\le m

测试点编号 n,mn,m\le
121\sim2 1010
363\sim6 100100
7107\sim10 10001000

2026挑战赛决赛C++编程提升

Not Attended
Status
Done
Rule
IOI
Problem
8
Start at
2026-4-17 19:15
End at
2026-4-26 3:15
Duration
200 hour(s)
Host
Partic.
24