a135: 一起來摺紙
Tags : 二維陣列 模擬
Accepted rate : 2人/3人 ( 67% ) [非即時]
評分方式:
Tolerant

最近更新 : 2022-01-31 22:08

Content

有一張 $r \times c 的方格紙$,每個格子上一開始都有數字,你可以對這張紙進行以下三種摺法

  • 摺法 $1$:由上往下摺 $k$ 層
  • 摺法 $2$:由右往左摺 $k$ 層
  • 摺法 $3$:由右上往左下摺 $k$ 層

摺完後將重疊的格子數字加總並且調整紙張,按照摺法 $1$ 與摺法 $2$ 後會紙張的大小會改變,摺法 $3$不會改變紙張大小,但是會將缺角處的數字歸0。

下圖為範例測資一 ~ 三的圖示

  

 

Input

第一行輸入紙張的大小 $r$、$c$,兩者都不超過 600

接下來 $r$ 行每行輸入 $c$ 個數字,代表紙張上每格的初始數值,不同數字間以空白隔開。

最後有若干行,每行輸入兩個數字,分別為摺法與層數 $k$,

註:因為最後有多行輸入,應該處理到EOF為止,使用Python者可參考提示

子題配分如下:

  • (50%):只會出現摺法 $1$ 與摺法 $2$
  • (50%):無其他限制.
Output

輸出最後紙張每一格的數值,同一行數字以空格隔開。

Sample Input #1
8 3
1 2 3
6 5 4
6 5 4
2 4 6
0 1 2
1 2 3
4 5 6
7 8 9
1 2
Sample Output #1
12 10 8
3 6 9
0 1 2
1 2 3
4 5 6
7 8 9
Sample Input #2
5 9
0 9 0 9 6 9 7 3 1
1 8 1 8 5 8 4 4 2
2 7 2 7 4 6 3 5 4
3 6 3 6 3 4 1 7 5
4 5 4 5 2 2 2 8 3
2 3
Sample Output #2
0 9 0 10 9 16
1 8 1 10 9 12
2 7 2 11 9 9
3 6 3 11 10 5
4 5 4 8 10 4
Sample Input #3
8 6
0 8 21 9 5 3
1 7 9 17 8 1
2 6 8 3 12 6
3 2 4 3 3 15
4 1 1 7 2 9
5 3 2 9 3 4
6 0 5 4 5 5
7 1 6 6 4 6
3 4
Sample Output #3
0 8 21 0 0 0
1 7 18 17 0 0
2 6 13 11 12 0
3 2 7 4 9 15
4 1 1 7 2 9
5 3 2 9 3 4
6 0 5 4 5 5
7 1 6 6 4 6
Sample Input #4
6 5
1 2 4 5 1 
0 0 2 4 5 
5 4 4 3 0 
3 0 5 3 4 
2 4 1 5 0 
3 1 5 3 4 
3 2
1 3
2 2
Sample Output #4
8 8 15 
2 9 13 
4 7 17
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (10%): 1.0s , <1K
公開 測資點#1 (10%): 1.0s , <1M
公開 測資點#2 (10%): 1.0s , <1M
公開 測資點#3 (10%): 1.0s , <1M
公開 測資點#4 (10%): 1.0s , <1M
公開 測資點#5 (10%): 1.0s , <1M
公開 測資點#6 (10%): 1.0s , <1M
公開 測資點#7 (10%): 1.0s , <1M
公開 測資點#8 (10%): 1.0s , <1M
公開 測資點#9 (10%): 1.0s , <1M
Hint :

Python遇到多行輸入的語法

while True:
try:
t, k = map(int, input().split()) #輸入指令
except EOFError:
break
Tags:
二維陣列 模擬
出處:
judgegirl [管理者:
ktlai (K.我已霸榜.Tlai)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」