Shikieiki Yamaxanadu (四季映姫・ヤマザナドゥ) is one of the gods that resides in hell and judges the deceased. She can clearly judge anything to be white (good) or black (evil). This ability allows her to get things settled once and for all. In her mind, only white or black is important, any other information about color is redundant.
A true-color bitmap should be converted to black-and-white bitmap. Firstly, the grayscale of a pixel is calculated using formala (11 * Red + 16 * Green + 5 * Blue) / 32. Secondly, the threshold is calculated using formala (192 + 2 * average_grayscale) / 3, where average_grayscale = sum_of_grayscale / (w * h). Lastly, convert pixels with grayscale less that threshold to black, and convert the others to white. All divisions are truncated divisions.
Input
There are multiple cases. Each case is a true-color bitmap. The first line is "wxh", then 3 ≤ h ≤ 300 lines, each contains 3 ≤ w ≤ 300 HTML colors. HTML colors are defined using a hex notation for the combination of Red, Green, and Blue color values. Hex values are written as 3 double digit numbers, starting with a # sign. The corresponding regex is m/^#[0-9A-F]{6}$/.
Output
For each test case, output the black-and-white bitmap. Output blank for white and digit 9 for black.
Sample Input
10x10 #1266E2 #03BF04 #B3988A #9B7411 #B3585E #BC036B #757E20 #9F37B7 #0150EF #AB34D4 #66B1D0 #631AD9 #24B176 #3933E7 #F731CF #BDFA8A #A88015 #7B07A0 #DDFD63 #EF5B6F #BC80B6 #D10920 #3E4D65 #669217 #CC2C1D #9CF8A3 #669730 #667CC8 #A916C6 #611FFD #7C8798 #C5A6A3 #8AB317 #EA177E #7372E2 #38BE40 #139C7A #213535 #71DA7B #AF5ACE #7FBEB8 #401EC7 #2EE620 #E1C350 #B0653A #7F0F4D #852C00 #923573 #5995E5 #17837B #8E7132 #69E6AE #70FCE4 #4C8941 #4832A5 #EF4C2B #7B4E38 #1E61A9 #3058C5 #3FA175 #B82C74 #DB3C4B #01D753 #83C951 #2047F6 #AD9F95 #75BAC9 #F87479 #133555 #82AEA9 #FF98A9 #819D40 #772A84 #8CEFD1 #8353DF #AC1654 #3A3130 #C0E192 #4E1EDC #3C4C6D #664C29 #FD0067 #DC474A #6BFA6C #08339D #6416B3 #619AE7 #A28BF1 #23A668 #B0D211 #2A3E62 #1172AE #5340EB #FBFD76 #338D32 #99444D #6ED6CE #F055E0 #1F4E82 #32F0CA 38x26 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #3A3A3A #696969 #FAFAFA #AFAFAF #525252 #F1F1F1 #FEFEFE #959595 #9B9B9B #5A5A5A #2E2E2E #B7B7B7 #101010 #646464 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #EFEFEF #EAEAEA #656565 #ECECEC #DCDCDC #F5F5F5 #CBCBCB #979797 #747474 #383838 #D7D7D7 #454545 #BABABA #FEFEFE #A6A6A6 #6F6F6F #B4B4B4 #707070 #010101 #888888 #F9F9F9 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #4C4C4C #191919 #A7A7A7 #D7D7D7 #212121 #939393 #F2F2F2 #B5B5B5 #6C6C6C #9B9B9B #989898 #B1B1B1 #292929 #010101 #737373 #676767 #D3D3D3 #CCCCCC #E8E8E8 #EFEFEF #AFAFAF #2C2C2C #5D5D5D #AAAAAA #E9E9E9 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #848484 #B9B9B9 #767676 #8F8F8F #A6A6A6 #909090 #070707 #828282 #F2F2F2 #B5B5B5 #121212 #616161 #464646 #2D2D2D #6C6C6C #4C4C4C #9C9C9C #CBCBCB #FAFAFA #FFFFFF #D2D2D2 #C0C0C0 #1E1E1E #191919 #0D0D0D #404040 #F6F6F6 #F1F1F1 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #F2F2F2 #555555 #3B3B3B #C2C2C2 #707070 #F9F9F9 #474747 #E7E7E7 #FFFFFF #131313 #252525 #DBDBDB #4F4F4F #B8B8B8 #000000 #000000 #000000 #B1B1B1 #A8A8A8 #303030 #161616 #3A3A3A #2C2C2C #FFFFFF #FFFFFF #F7F7F7 #C6C6C6 #888888 #080808 #2C2C2C #424242 #4D4D4D #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #D8D8D8 #5C5C5C #CCCCCC #E6E6E6 #B8B8B8 #646464 #FFFFFF #FFFFFF #676767 #E6E6E6 #4F4F4F #000000 #4E4E4E #A3A3A3 #2A2A2A #171717 #6E6E6E #666666 #E9E9E9 #BBBBBB #BBBBBB #434343 #C4C4C4 #8B8B8B #2F2F2F #535353 #FFFFFF #FFFFFF #BDBDBD #C2C2C2 #616161 #E1E1E1 #666666 #0C0C0C #FFFFFF #FFFFFF #FFFFFF #1A1A1A #C8C8C8 #939393 #A4A4A4 #1F1F1F #7C7C7C #FFFFFF #FFFFFF #D7D7D7 #565656 #777777 #000000 #A2A2A2 #545454 #A7A7A7 #222222 #ABABAB #FFFFFF #8F8F8F #4E4E4E #2D2D2D #A5A5A5 #B5B5B5 #ABABAB #D5D5D5 #9B9B9B #5B5B5B #0F0F0F #FFFFFF #FFFFFF #C3C3C3 #3C3C3C #3C3C3C #919191 #020202 #F7F7F7 #FFFFFF #484848 #4E4E4E #080808 #8E8E8E #E7E7E7 #727272 #FFFFFF #FFFFFF #151515 #7C7C7C #0A0A0A #F2F2F2 #515151 #A9A9A9 #EAEAEA #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #444444 #3B3B3B #858585 #606060 #C1C1C1 #E4E4E4 #FFFFFF #FFFFFF #FFFFFF #5F5F5F #212121 #787878 #F5F5F5 #444444 #1A1A1A #0D0D0D #1C1C1C #E8E8E8 #7C7C7C #282828 #EFEFEF #FFFFFF #FFFFFF #A9A9A9 #5A5A5A #E6E6E6 #888888 #838383 #656565 #D5D5D5 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #010101 #B0B0B0 #464646 #878787 #FCFCFC #EDEDED #9A9A9A #FFFFFF #FFFFFF #E1E1E1 #171717 #111111 #9A9A9A #262626 #C1C1C1 #505050 #444444 #040404 #4F4F4F #080808 #FFFFFF #FFFFFF #FFFFFF #C3C3C3 #0F0F0F #F9F9F9 #8C8C8C #060606 #A3A3A3 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FDFDFD #E6E6E6 #7B7B7B #3A3A3A #A6A6A6 #8C8C8C #0C0C0C #FFFFFF #FFFFFF #FFFFFF #1F1F1F #F7F7F7 #1D1D1D #4D4D4D #979797 #9F9F9F #BFBFBF #C4C4C4 #212121 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #808080 #D2D2D2 #5A5A5A #5C5C5C #6C6C6C #C0C0C0 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #313131 #C3C3C3 #626262 #090909 #4F4F4F #232323 #151515 #FFFFFF #FFFFFF #FFFFFF #EDEDED #F5F5F5 #5F5F5F #535353 #7D7D7D #6C6C6C #555555 #F0F0F0 #242424 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #000000 #414141 #525252 #919191 #212121 #A1A1A1 #A5A5A5 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #4B4B4B #3B3B3B #F2F2F2 #000000 #010101 #434343 #C7C7C7 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #999999 #FBFBFB #232323 #A8A8A8 #A7A7A7 #FFFFFF #858585 #9B9B9B #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FAFAFA #0B0B0B #B4B4B4 #191919 #212121 #E7E7E7 #7F7F7F #FCFCFC #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #414141 #636363 #0A0A0A #BFBFBF #000000 #000000 #595959 #BDBDBD #1F1F1F #FFFFFF #FFFFFF #FFFFFF #FFFFFF #2C2C2C #949494 #DCDCDC #A8A8A8 #585858 #F6F6F6 #010101 #D3D3D3 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #4B4B4B #5D5D5D #050505 #676767 #000000 #1B1B1B #737373 #929292 #444444 #CFCFCF #0B0B0B #969696 #717171 #A0A0A0 #000000 #A3A3A3 #B8B8B8 #030303 #FEFEFE #0F0F0F #C4C4C4 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #383838 #4C4C4C #F3F3F3 #686868 #F5F5F5 #E3E3E3 #5F5F5F #838383 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #DCDCDC #494949 #585858 #0D0D0D #000000 #000000 #1D1D1D #616161 #797979 #000000 #282828 #C9C9C9 #7A7A7A #141414 #1A1A1A #CFCFCF #2E2E2E #1D1D1D #F4F4F4 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #A4A4A4 #101010 #D5D5D5 #4B4B4B #3C3C3C #595959 #5E5E5E #1F1F1F #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #BDBDBD #343434 #AAAAAA #8D8D8D #010101 #B6B6B6 #9C9C9C #C3C3C3 #9D9D9D #737373 #2E2E2E #9B9B9B #505050 #131313 #E8E8E8 #8E8E8E #7C7C7C #FFFFFF #FFFFFF #FFFFFF #F4F4F4 #989898 #E3E3E3 #F1F1F1 #B1B1B1 #A1A1A1 #B6B6B6 #4A4A4A #0D0D0D #646464 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #4F4F4F #484848 #ADADAD #5D5D5D #797979 #FFFFFF #FFFFFF #7F7F7F #606060 #A9A9A9 #B7B7B7 #F0F0F0 #FFFFFF #FFFFFF #4C4C4C #292929 #C6C6C6 #C4C4C4 #A7A7A7 #DCDCDC #555555 #FFFFFF #FFFFFF #FFFFFF #585858 #282828 #CFCFCF #373737 #666666 #434343 #181818 #232323 #5A5A5A #878787 #FDFDFD #FFFFFF #FFFFFF #FFFFFF #101010 #EAEAEA #5E5E5E #5C5C5C #D5D5D5 #070707 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #DCDCDC #737373 #A6A6A6 #131313 #9A9A9A #676767 #FFFFFF #FFFFFF #FFFFFF #DADADA #EBEBEB #E2E2E2 #6F6F6F #CFCFCF #3C3C3C #0C0C0C #D9D9D9 #DCDCDC #262626 #C1C1C1 #020202 #FFFFFF #FFFFFF #FFFFFF #B5B5B5 #D4D4D4 #3C3C3C #000000 #212121 #565656 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #282828 #070707 #959595 #ABABAB #3E3E3E #686868 #888888 #FFFFFF #FFFFFF #FFFFFF #C7C7C7 #F8F8F8 #CBCBCB #050505 #B3B3B3 #D3D3D3 #FFFFFF #4B4B4B #888888 #5C5C5C #CCCCCC #2E2E2E #646464 #FFFFFF #FFFFFF #ACACAC #0D0D0D #BEBEBE #000000 #535353 #191919 #2A2A2A #858585 #090909 #1B1B1B #979797 #CFCFCF #313131 #C6C6C6 #D6D6D6 #000000 #A7A7A7 #ECECEC #3E3E3E #FFFFFF #FFFFFF #FFFFFF #242424 #434343 #FCFCFC #878787 #A9A9A9 #7F7F7F #FFFFFF #FFFFFF #DDDDDD #0B0B0B #000000 #494949 #F8F8F8 #C3C3C3 #D5D5D5 #FFFFFF #FFFFFF #797979 #BCBCBC #787878 #C6C6C6 #000000 #030303 #838383 #1B1B1B #616161 #DCDCDC #080808 #A5A5A5 #000000 #7D7D7D #707070 #2C2C2C #D1D1D1 #E0E0E0 #FFFFFF #FFFFFF #353535 #373737 #2D2D2D #0B0B0B #D8D8D8 #4D4D4D #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #585858 #CFCFCF #424242 #3F3F3F #777777 #FDFDFD #A2A2A2 #FFFFFF #FFFFFF #878787 #232323 #BDBDBD #343434 #787878 #BABABA #F1F1F1 #404040 #D9D9D9 #535353 #808080 #9E9E9E #060606 #565656 #FFFFFF #FFFFFF #6D6D6D #020202 #CBCBCB #FAFAFA #4A4A4A #D0D0D0 #242424 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #4A4A4A #888888 #DFDFDF #EEEEEE #F9F9F9 #A8A8A8 #777777 #FFFFFF #FFFFFF #666666 #F0F0F0 #363636 #4A4A4A #030303 #DBDBDB #9B9B9B #636363 #232323 #FFFFFF #FFFFFF #FFFFFF #767676 #EAEAEA #1E1E1E #1D1D1D #C3C3C3 #3E3E3E #808080 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #4B4B4B #0D0D0D #3E3E3E #D0D0D0 #303030 #707070 #333333 #2E2E2E #A6A6A6 #E9E9E9 #676767 #838383 #484848 #F3F3F3 #7E7E7E #202020 #B9B9B9 #161616 #5A5A5A #505050 #FDFDFD #080808 #EDEDED #1F1F1F #585858 #F1F1F1 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #646464 #B7B7B7 #BEBEBE #090909 #191919 #252525 #484848 #0F0F0F #999999 #D0D0D0 #020202 #A6A6A6 #333333 #323232 #3C3C3C #121212 #7B7B7B #E5E5E5 #B5B5B5 #A8A8A8 #EBEBEB #F0F0F0 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #D7D7D7 #DBDBDB #D0D0D0 #7A7A7A #4B4B4B #151515 #3C3C3C #9A9A9A #FEFEFE #4E4E4E #9D9D9D #535353 #D1D1D1 #EAEAEA #020202 #1B1B1B #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
Sample Output
10x10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 38x26 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
题意:输入一个16进制的数字,如果每两位分别代表了红绿蓝,然后再计算公式,再按照大小转换成“ ”或者“9”就行。
就考了进制转化,再就是阅读理解吧,这题读的人蛋疼。
#include<iostream> #include<fstream> #include<string> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; int zh(string s) { int i,m,temp=0,n; int green,red,blue; green=red=blue=0; for(i=1;i<3;i++) { if(s[i]>='A'&&s[i]<='F')//十六进制还要判断他是不是在A-F或者a-f之间a=10。。 n=s[i]-'A'+10; else if(s[i]>='a'&&s[i]<='f') n=s[i]-'a'+10; else n=s[i]-'0'; red=red*16+n; } for(i=3;i<5;i++) { if(s[i]>='A'&&s[i]<='F')//十六进制还要判断他是不是在A-F或者a-f之间a=10。。 n=s[i]-'A'+10; else if(s[i]>='a'&&s[i]<='f') n=s[i]-'a'+10; else n=s[i]-'0'; green=green*16+n; } for(i=5;i<7;i++) { if(s[i]>='A'&&s[i]<='F')//十六进制还要判断他是不是在A-F或者a-f之间a=10。。 n=s[i]-'A'+10; else if(s[i]>='a'&&s[i]<='f') n=s[i]-'a'+10; else n=s[i]-'0'; blue=blue*16+n; } temp=(11*red+16*green+5*blue)/32; return temp; } string a[400][400]; int b[400][400]; int main() { int i,j; int w,h; int scal,sum,shold,ave; int n=10; sum=0; while(~scanf("%dx%d",&h,&w)) { memset(b,0,sizeof(b)); sum=0;//注意初始化啊!! for(i=0;i<w;i++) { for(j=0;j<h;j++) { cin>>a[i][j]; if(a[i][j]=="10x10") { cin>>a[i][j+1]; a[i][j]=a[i][j+1]; } b[i][j]=zh(a[i][j]); sum+=b[i][j]; } } ave=sum/(w*h); shold=(192+2*ave)/3; cout<<h<<"x"<<w<<endl; for(i=0;i<w;i++) { for(j=0;j<h;j++) { if(b[i][j]<shold) { a[i][j]="9"; } else { a[i][j]=" "; } if(j<h-1) cout<<a[i][j]<<" "; else cout<<a[i][j];//这里注意输出,否则就PE了。 } cout<<endl; } } return 0; }