2011年5月16日 星期一

10267 - Graphical Editor

Problem

簡易型的圖形編輯器可以處理長方型的圖檔,長寬為 M x N (1<=M,N<=250),圖中每個像素(pixel)都有其代表的顏色,每張圖片都是由像素所組成的。

本題目要求寫出一個程式,能模擬圖形編輯器的功能。

Input

輸入的每一行為圖片編輯的指令,每一道指令的開頭以英文大寫字母來表示。指令會帶有一些參數,每個參數會在同一行並以空白字元隔開。常見的一種參數為像素(pixel)的座標位置(x, y),x表示欄號(1~M),y表示列號(1~N),原點在圖的左上角。顏色、大寫字母、檔名以MSDOS 8.3格式表示。

編輯器支援的指令如下:

(注意:下表左列的每一組字母皆在同一列,會有多列的情形是因為我不會畫網頁表格…)

I M N新增文件,大小為M x N,初始顏色為白色(白色以大寫字母O表示)。
C清除文件內容,並保留文件大小,清除後文件變為白色(O)。

L X Y C畫點,在(X,Y)的位置上畫點,顏色為C。

V X Y1 Y2 C畫垂直線,在第X欄上畫垂直線,Y的值介於Y1, Y2之間,直線的顏色為C。

H X1 X2 Y C畫水平線,在第Y列上畫水平線,X的值介於X1, X2之間,直線的顏色為C。

K X1 Y1 X2 Y2 C填入矩形,也就是畫實心矩形,(X1,Y1)為矩形左上角的點,(X2,Y2)為右下角的點,填入顏色為C。

F X Y C填入色彩,把色彩C填到位置(X,Y)上,若(X,Y)週邊的顏色與(X,Y)原來的顏色相同的話,也同樣填上色彩C,同理,不斷擴散直到把整塊相同顏色的區塊填滿為止。
S Name儲存檔案,檔名為Name。

X結束。

Output

當遇到儲存檔案的指令時,你必須輸出該圖片的檔名,與圖片最後的樣子。請參考範例的輸出格式。

Errors

若指令的開頭字元不是 I, C, L, V, H, K, F, S, X,則視為錯誤的指令整行忽略掉,並直接處理下一道指令。

Sample Input

I 5 6
L 2 3 A
S one.bmp
G 2 3 J
F 3 3 J
V 2 3 4 W
H 3 4 2 Z
S two.bmp
X

Sample Output

one.bmp
OOOOO
OOOOO
OAOOO
OOOOO
OOOOO
OOOOO
two.bmp
JJJJJ
JJZZJ
JWJJJ
JWJJJ
JJJJJ
JJJJJ



原文出處

沒有留言:

張貼留言