TopCoder

User's AC Ratio

100.0% (1/1)

Submission's AC Ratio

50.0% (2/4)

Tags

Description

有一個 $n \times n$ 的二維陣列,你可以把它逆時針旋轉 $90 \times k$ 度嗎?

為了考驗你,請你不要在程式碼中使用 []<::>(冷知識:它們是 [] 的替代寫法)運算子。

請在程式碼第一行引入標頭檔 lib0633.h,並實作以下函數:

  • void rotate(int **p, int n, int k)
    • $p$ 是一個 $n \times n$ 的二維陣列。
    • 你要把 $p$ 修改成逆時針旋轉 $90 \times k$ 度後的版本。

注意請勿在你的程式碼中宣告 main() 函數,或是進行任何輸入輸出,否則將會發生不可預期的結果。

以下是一個可以通過編譯但不一定會得到 AC 的範例程式碼:

#include "lib0633.h"

void rotate(int **p, int n, int k){
}

Input Format

請勿進行任何輸入輸出,否則將會發生不可預期的結果。

  • $1 \leq n \leq 1000$
  • $1 \leq k \leq 3$
  • 二維陣列中的所有數字都在 $[0, 10^ 9]$ 內

範例範入與測試用標頭檔的輸入格式為:第一行有兩個整數 $n,k$,接下來 $n$ 行中,第 $i$ 行有 $n$ 個整數,分別是 $p[i][0],p[i][1],\dots,p[i][n-1]$。

Output Format

請勿進行任何輸入輸出,否則將會發生不可預期的結果。

範例範出與測試用標頭檔的輸出格式為:輸出 $n$ 行,第 $i$ 行有 $n-1$ 個整數,分別是 $p[i][0],p[i][1],\dots,p[i][n-1]$。

Sample Input 1

3 1
1 2 3
4 5 6
7 8 9

Sample Output 1

3 6 9
2 5 8
1 4 7

Sample Input 2

4 2
9 2 2 3
3 7 2 0
3 6 8 5
4 7 7 5

Sample Output 2

5 7 7 4
5 8 6 3
0 2 7 3
3 2 2 9

Sample Input 3

2 3
8 7
6 3

Sample Output 3

6 8
3 7

Hints

測試用標頭檔

這裡提供一份本地測試用的標頭檔,你可以將其複製下來存檔成 lib0633.h#include "lib0633.h" 做使用。但請注意,這只是測試用的標頭檔,一些與解題無關的行為將會與 judge 上的有所不同,因此請不要嘗試任何與解題無關的行為,很可能會導致各種不可預期的後果。

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~2 範例測資 0
2 0~14 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2
1 1000 524288 65536 1 2
2 1000 524288 65536 1 2
3 1000 524288 65536 2
4 1000 524288 65536 2
5 1000 524288 65536 2
6 1000 524288 65536 2
7 1000 524288 65536 2
8 1000 524288 65536 2
9 1000 524288 65536 2
10 1000 524288 65536 2
11 1000 524288 65536 2
12 1000 524288 65536 2
13 1000 524288 65536 2
14 1000 524288 65536 2