1784:旋转方阵

时间限制:2 S   /  内存限制:65536 KB
AC:14   /  Submit:35
问题描述

给你一个$$n×n$$的方阵(保证$$n$$是一个偶数),其中最外层记为第$$1$$圈,次外层记为第$$2$$圈,$$...$$,最内层记为第$$\dfrac{n}{2}$$圈。

如下给出一个$$6×6$$的方阵,并把第$$1$$圈、第$$2$$圈和第$$3$$圈分别用黄色、橙色和绿色标出。

现在我们用一些数字把这个方阵填满,并定义一种旋转操作。

给出两个整数$$x$$和$$y$$:

1、如果$$y$$是非负整数,你需要把方阵的第$$x$$圈上的所有数字沿顺时针的方向移动$$y$$次。

2、如果$$y$$是一个负数,你需要把方阵的第$$x$$圈上的所有数字沿逆时针的方向移动$$-y$$次。

下面是一个旋转的例子,例如给出的两个整数分别是$$2$$和$$3$$,意味着我们要把该方阵第$$2$$圈上的所有数字沿顺时针的方向移动$$3$$次。

现在,给你原始方阵以及一些旋转操作,请你输出最后方阵的样子。

输入描述

第一行是一个正偶数$$n$$表示方阵的大小。($$2 \leq n \leq 100$$)

接下来$$n×n$$个$$int$$范围内的整数表示这个方阵的所有元素。

然后是一个正整数$$m$$表示旋转操作的次数。($$1 \leq m \leq 1000$$)

最后$$m$$行,每行两个整数$$x$$和$$y$$表示一次旋转操作。($$1 \leq x \leq \dfrac{n}{2}, -10^9 \leq y \leq 10^9$$)

输出描述

一个经过$$m$$次旋转操作过后的$$n×n$$方阵。输出时,每两个数字用空格隔开,最后一个数字后面没有空格。

样例输入复制样例

6

1 2 3 4 5 6

7 8 9 0 9 8

3 2 4 5 6 7

2 5 7 8 2 4

4 2 4 9 1 0

9 6 8 7 3 1

3

2 3

1 1

3 -1

样例输出

7 1 2 3 4 5

3 2 5 2 8 6

2 4 5 8 9 8

4 9 4 7 0 7

9 1 2 6 9 4

6 8 7 3 1 0

相关

23-24(1)第6次线上赛


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1