一個 n*n 影像檔包含 n2 個像素。每個像素包含紅(R)綠(G)藍(B)三個顏色。寫一個程式,讀入一個 n*n 影像檔,根據下列式子,將紅綠藍三個顏色轉換成 XYZ 表色系統,其中 Y 為影像亮度,將轉換成的 XYZ 根據輸入順序輸出,並算出影像平均亮度,將答案輸出。
表示
X = 0.5149 * R + 0.3244 * G + 0.1607 * B
Y = 0.2654 * R + 0.6704 * G + 0.0642 * B
Z = 0.0248 * R + 0.1248 * G + 0.8504 * B
每一個像素皆由 RGB 三個顏色組成,每個顏色的值是介於 0 到 255 之間(含)的整數,若一個像素的組成為 R = 255、G = 3、B = 192,則此像素表示為 255 3 192 (整數間以一個空白字元分隔)。
輸入檔案的第一行為一整數 n ( 0 < n ≤ 256 ),之後有 n 行,每一行代表 n 個像素,每個像素都是由上述的方式表示 (每個像素間以一個空白字元隔開)。
對每一個像素請根據輸入順序,由左而右,由上而下輸出,每一行請輸出 1 個像素,共 n2 行,每一個像素依序輸出 X、Y、Z 的值,並且三個值之間都以一個空白字元分隔,並在最後一行輸出影像平均亮度 (請印出 “The average of Y is”)。其中 X、Y、Z 的值與影像平均亮度的值請表示到小數點後第 4 位 (以下四捨五入)。
註:每個數字要跟裁判的輸出檔完全相同才會AC。
原TIOJ1140 / 95全國賽(prob 1)。
No. | Testdata Range | Score |
---|---|---|
1 | 0 | 16 |
2 | 1 | 16 |
3 | 2 | 16 |
4 | 3 | 16 |
5 | 4 | 16 |
6 | 5 | 20 |