zoj3383

来源:互联网 发布:东华软件股票 编辑:程序博客网 时间:2024/05/19 22:48

一道做到我流泪又流汗的题!!!题目什么也不说就让你看sample,真实。。。。特别是w和h的交换,哎,无语。。。。

#include<iostream>
#include<string>
using namespace std;
char ss[200];
string a[305][305];
int b[305][305];

int main(){
       // freopen("in.txt","r",stdin);
      //  freopen("out.txt","w",stdout);
    while(scanf("%s",ss)!=EOF){
        cout<<ss<<endl;
         int w=0,h=0;
         char* u=ss;
        while(*u!='x'){
            w=w*10+(*u-'0');
            u++;}
            u++;
            while(*u!='/0'){
               h=h*10+(*u-'0');
               u++;}

        int sum=0;
        memset(b,0,sizeof(b));

      int t=w;w=h;h=t;
        for(int i=0;i<w;i++){
            for(int j=0;j<h;j++){
                cin>>a[i][j];
                int read=0;
                if('0'<=a[i][j][1]&&a[i][j][1]<='9')
               read=read*16+(a[i][j][1]-'0');
               else{read=read*16+(a[i][j][1]-'A'+10);}


                    if('0'<=a[i][j][2]&&a[i][j][2]<='9')
               read=read*16+(a[i][j][2]-'0');
               else {read=read*16+(a[i][j][2]-'A'+10);}


                    int green=0;
                    if('0'<=a[i][j][3]&&a[i][j][3]<='9')
               green=green*16+(a[i][j][3]-'0');
               else{green=green*16+(a[i][j][3]-'A'+10);}

 


                    if('0'<=a[i][j][4]&&a[i][j][4]<='9')
               green=green*16+(a[i][j][4]-'0');
               else{green=green*16+(a[i][j][4]-'A'+10);}


                    int blue=0;
                   if('0'<=a[i][j][5]&&a[i][j][5]<='9')
               blue=blue*16+(a[i][j][5]-'0');
               else{blue=blue*16+(a[i][j][5]-'A'+10);}

                 if('0'<=a[i][j][6]&&a[i][j][6]<='9')
               blue=blue*16+(a[i][j][6]-'0');
               else{blue=blue*16+(a[i][j][6]-'A'+10);}


               b[i][j]=(read*11+green*16+blue*5)/32;


              sum+=b[i][j];
              }

        }

         int temp=sum/(w*h);
           temp=(192+2*temp)/3;

      
           for(int i=0;i<w;i++){
                for(int j=0;j<h;j++){
                if(b[i][j]>=temp) cout<<" ";
                else cout<<"9";
                if(j<h-1) cout<<" ";
}
          cout<<endl;
                }

 

}
return 0;}

 

原创粉丝点击