Windows的小畫家真好用!
(至少在處理PrintScreen方面蠻快的…)
大家都知道
小畫家裡面有一種繪圖工具
叫做油漆桶工具
只要選定你要的顏色、油漆的地點就可以進行填色
油漆桶的填色範圍是取決於"同色塊相鄰"的原則
現在請你模擬這項工具
輸入說明 :
每個測資點只有一筆測資。
第一行有整數n(1<=n<=100)表示這張圖的大小是(n*n)個字元
接下來的n行,每行n個字元表示這張圖的樣子。
只有+、-兩種字元組成(兩種顏色的意思)
在最後一行,有兩個整數i,j表示油漆桶點擊的地點是第(i+1)列第(j+1)個字元,
[
假設有圖如下3*3:
012
0---
1-+-
2-++
那麼0,2就表示這格:
012
0--*
1-+-
2-++
]
請視選取的顏色為+,選取的位置原本的顏色必為-
並且墨水只會利用上下左右四個方位擴散
輸出說明 :
請直接輸出經過油漆桶塗色後的圖案
範例輸入 :
7
-------
-+++---
-+--+--
-+---+-
--+++--
---++--
-------
3 4
範例輸出 :
-------
-+++---
-++++--
-+++++-
--+++--
---++--
-------
提示 :
測資給定的i,j是0,0…嘿嘿嘿
程式碼 :
#include<stdio.h> int n; char map[101][101]; void print(int a, int b) { if(a<0 || b<0 || a==n || b==n) return ; if(map[a][b] == '+') return ; map[a][b] = '+'; print(a+1,b); print(a-1,b); print(a,b+1); print(a,b-1); } int main() { int a,b,i,j; while(scanf("%d",&n)==1) { for(i=0; i<n; i++) for(j=0; j<n; j++) scanf(" %c",&map[i][j]); scanf("%d %d",&a,&b); print(a,b); for(i=0; i<n; i++) { for(j=0; j<n; j++) printf("%c",map[i][j]); printf("\n"); } } return 0; }
http://zerojudge.tw/ShowProblem?problemid=d626
沒有留言:
張貼留言