zoj 3383 Shiro Kuro
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3383
#include <stdio.h>
#define MAXN 302
int w,h,red,green,blue,bitmap[MAXN][MAXN];
int threshold,grayscale,sum_of_grayscale,average_grayscale;
int calc(char a,char b)
{
int c,d;
if(a>='0' && a<='9') c=(int)(a-'0');
else c=(int)(a-'A'+10);
if(b>='0' && b<='9') d=(int)(b-'0');
else d=(int)(b-'A'+10);
// printf("c=%d d=%d\n",c,d);
return c*16+d;
}
int main()
{
int i,j;
char a,b;
while(scanf("%d%*c%d",&w,&h)!=EOF)
{
// printf("w=%d h=%d\n",w,h);
getchar();//'\n'
sum_of_grayscale=0;
for(i=0; i<h; i++)
{
for(j=0; j<w; j++)
{
getchar();//'#'
a=getchar();
b=getchar();
red=calc(a,b);
a=getchar();
b=getchar();
green=calc(a,b);
a=getchar();
b=getchar();
blue=calc(a,b);
getchar();//' ' or '\n'
bitmap[i][j]=(11*red+16*green+5*blue)/32;
// printf("bitmap[%d][%d]=%d\n",i,j,bitmap[i][j]);
sum_of_grayscale+=bitmap[i][j];
}
}
average_grayscale=sum_of_grayscale/(w*h);
threshold=(192+2*average_grayscale)/3;
printf("%dx%d\n",w,h);
for(i=0; i<h; i++)
{
for(j=0; j<w; j++)
{
if(bitmap[i][j]<threshold)//black-9
{
if(!j) printf("9");
else printf(" 9");
}
else//white-' '
{
if(!j) printf(" ");
else printf(" ");
}
}
printf("\n");
}
}
return 0;
}
浙公网安备 33010602011771号