A. Brain's Photos

time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

Small, but very brave, mouse Brain was not accepted to summer school of young villains. He was upset and decided to postpone his plans of taking over the world, but to become a photographer instead.

As you may know, the coolest photos are on the film (because you can specify the hashtag #film for such).

Brain took a lot of colourful pictures on colored and black-and-white film. Then he developed and translated it into a digital form. But now, color and black-and-white photos are in one folder, and to sort them, one needs to spend more than one hour!

As soon as Brain is a photographer not programmer now, he asks you to help him determine for a single photo whether it is colored or black-and-white.

Photo can be represented as a matrix sized n × m, and each element of the matrix stores a symbol indicating corresponding pixel color. There are only 6 colors:

  • 'C' (cyan)

  • 'M' (magenta)

  • 'Y' (yellow)

  • 'W' (white)

  • 'G' (grey)

  • 'B' (black)

The photo is considered black-and-white if it has only white, black and grey pixels in it. If there are any of cyan, magenta or yellow pixels in the photo then it is considered colored.

Input

The first line of the input contains two integers n and m (1 ≤ n, m ≤ 100) — the number of photo pixel matrix rows and columns respectively.

Then n lines describing matrix rows follow. Each of them contains m space-separated characters describing colors of pixels in a row. Each character in the line is one of the 'C', 'M', 'Y', 'W', 'G' or 'B'.

Output

Print the "#Black&White" (without quotes), if the photo is black-and-white and "#Color" (without quotes), if it is colored, in the only line.

Examples

input

2 2  C M  Y Y

output

#Color

input

3 2  W W  W W  B B

output

#Black&White

input

1 1  W

output

#Black&White

____________________

题意:一张照片用矩阵n * m 表示,里面有C M Y W G B 几种颜色,判断这张照片是否是黑白照(黑白照只有W G B 三种)

程序应该还是比较好写的,一开始无脑写了一个版本是:

#include<iostream>

using namespace std ;

string s[100];

int main()

{

int n , m ;

cin >> n >> m ;

int flag = 0 ;

for ( int i = 0 ; i < n ; i++ )

{

for ( int j = 0 ; j < m ; j++ )

{

cin>>s[i][j] ;

}

}

for ( int i = 0 ; i < n ; i++ )

{

for ( int j = 0 ; j < m ; j++ )

{

switch(s[i][j])

{

case'C':

case'M':

case'Y':

flag = 1 ; break ;

default : continue ;

}

 }

}

if(flag == 1 ) 

cout << "#Color"<< endl ;

else cout <<"#Black&White" << endl ;

return 0 ; 

}

这样的话,大概时间复杂度在1W左右,应该能A,还是runtime error (但是在本机评测的话RE的数据可以在4.6s跑完,不知道是TLE了还是又是代码写的还会导致segment fault) 。

我在这里认为既然本机4.6s能跑完,应该是TLE了。于是怀疑被无数ACMer所诟病的cin cout 的效率,于是用scanf printf改写:

//#include<iostream>

//using namespace std ;

#include<cstdio>

char s[110][110];

int main()

{

int n , m ;

//freopen("2.txt","r",stdin);

scanf("%d %d",&n,&m);

int flag = 0 ;

for ( int i = 0 ; i < n ; i++ )

{

for ( int j = 0 ; j < m ; j++ )

{

//cin>>s[i][j] ;

scanf("%s",&s[i][j]);

switch(s[i][j])

{

case'C':

case'M':

case'Y':

flag = 1 ; break ;

default : continue ;

}

} 

}

if(flag == 1 ) 

//cout << "#Color"<< endl ;

printf("#Color\n");

else //cout <<"#Black&White" << endl ;

printf("#Black&White\n");

return 0 ; 

}

成功AC。

但是这个还是有优化空间的,发现开了那么大数组其实根本没必要使用。

最后优化一下代码:

#include<cstdio>

int main()

{

int n , m ;

scanf("%d %d",&n,&m);

int flag = 0 ;

char t[2];

for ( int i = 0 ; i < n ; i++ )

{

for ( int j = 0 ; j < m ; j++ )

{

//cin>>s[i][j] ;

scanf("%s",&t);

switch(t[0])

{

case'C':

case'M':

case'Y':

flag = 1 ; break ;

default : continue ;

}

} 

}

if(flag == 1 ) 

//cout << "#Color"<< endl ;

printf("#Color\n");

else //cout <<"#Black&White" << endl ;

printf("#Black&White\n");

return 0 ; 

}

这里似乎还是有字符串的问题,一开始蠢了字符串开成了char t[1];还错了好几次,貌似我访问t[1]访问到了m的地址,于是t[0]存放字符,t[1]把m的值改变了导致非常奇怪的跑法。

ps:在这里之所以我总是不甘心的用%s 字符串处理,是为了处理空格。

最后 AC记录:

A. Brain's Photos ——Codeforces Round #368 (Div. 2)的更多相关文章

  1. Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)

    Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...

  2. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  3. Codeforces Round #368 (Div. 2) C. Pythagorean Triples(数学)

    Pythagorean Triples 题目链接: http://codeforces.com/contest/707/problem/C Description Katya studies in a ...

  4. Codeforces Round #368 (Div. 2) B. Bakery (模拟)

    Bakery 题目链接: http://codeforces.com/contest/707/problem/B Description Masha wants to open her own bak ...

  5. Codeforces Round #368 (Div. 2) A. Brain's Photos 水题

    A. Brain's Photos 题目连接: http://www.codeforces.com/contest/707/problem/A Description Small, but very ...

  6. Codeforces Round #368 (Div. 2)A B C 水 图 数学

    A. Brain's Photos time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  7. Codeforces Round #368 (Div. 2) A , B , C

    A. Brain's Photos time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  8. Codeforces Round #368 (Div. 2) A

    Description Small, but very brave, mouse Brain was not accepted to summer school of young villains. ...

  9. Codeforces Round #368 (Div. 2) D. Persistent Bookcase

    Persistent Bookcase Problem Description: Recently in school Alina has learned what are the persisten ...

随机推荐

  1. <poj - 3268> Silver Cow Party 牛のpart 最短路径问题

    本题链接 : http://poj.org/problem?id=3268 题目大意:牛们要去聚会,输入N = 顶点数(牛场):M = 边(路)的数目: X = 终点 (聚会点).问题:求来回时间的最 ...

  2. something funny

    something funny. #include <stdio.h> #include <windows.h> #define N 50 HANDLE hConsole; v ...

  3. 四步安装typecho(LNMP环境)

    ##1 安装nginx,mysql,php环境 sudo apt-get install nginx php5-fpm php5-cgi php5-cli php5-curl php5-gd php5 ...

  4. cuckoo相关

    Q1:pefile is out of date 现象:ERROR: Your version of pefile is out of date.  Please update to the late ...

  5. mysql for windows zip版安装

    1.将mysql_5.6.24_winx64.zip 解压到文件夹 2.增加环境变量 3.修改mysql配置文件 将mysql根目录下的my-default.ini 复制一份更名为 my.ini.修改 ...

  6. 成为java高手的八大条件

    1.扎实的基础  数据结构.离散数学.编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序.程序人人都会写,但当你发现写到一定程度很难再提高 的时候,就应该想想是不是要回过头来学 ...

  7. C#隐藏(new)方法和重写(override)方法

    在基类调用的时候 隐藏方法还是调用基类的方法 而重写方法调用的就是子类的中的方法 同时,当子类中的方法与父类或者所实现的接口中的扩展方法冲突时,那么此时相当于一个隐藏方法 基类调用或者接口调用的时候使 ...

  8. openstack私有云布署实践【6 RabbitMQ】

    生产环境建议在集群三台controller上做rabbitmq 使用到队列的openstack组件 OpenStack Compute OpenStack Block Storage OpenStac ...

  9. 第七十节,css选择器

    css选择器 学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 本章主要探讨 HTML5中  CSS选择器,通过选择器定位到想要设置样式的元素.目前CSS选择器的版本已经升 ...

  10. input输入框只允许输入数字/ 数字+小数点/ 文字+字母/ 等解决方法

    1.只允许输入数字: <input type="text" onkeyup="this.value=this.value.replace(/[^0-9]/g,'') ...