首页 > 试题广场 >

操作矩形

[编程题]操作矩形
  • 热度指数:620 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

平面上有一个矩形,大小为n×m,其中,长度为n的边是竖直的,长度为m的边是水平的。将矩形切割成n×m个小正方形,规定左上角的小正方形坐标为,左下角的小正方形坐标为,右上角的小正方形坐标为,右下角的小正方形坐标为。从上往下数第x行,从左往右数第列的小正方形坐标为(x,y).

现在,我们对这个矩形进行如下操作,将其顺时针旋转90度x次,然后将其水平翻转y次,然后将其逆时针旋转90度z次。

接着,我们将这个操作后的矩形重新标上坐标,每一个小正方形就有一个原来的坐标和新的坐标。

然后有Q个询问,每一次询问一个原来坐标为的小正方形的新坐标。你需要对所有询问作出回答。


输入描述:

输入第一行包含三个数x ,y ,z ,代表顺时针旋转,水平翻转,逆时针旋转的次数。

接下来一行两个数,n,m代表原矩形的大小。

接下来一行一个数,Q代表询问次数。

接下来Q行,每行两个数x,y,代表一次询问,询问原矩形中坐标为(x,y)的点现在的新坐标



输出描述:

输出包含Q行,每一行一个答案。  

示例1

输入

1 1 1
4 5
3
1 1
3 4
2 5

输出

4 1
2 4
3 5

说明