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. C++虚成员函数表vtable

    介绍一下多态是如何实现的,关于如何实现多态,对于程序设计人员来说即使不知道也是完全没有关系的,但是对于加深对多态的理解具有重要意义,故而在此节中稍微阐述一下多态的实现机制. 在C++中通过虚成员函数表 ...

  2. emmet 教程 emmet快捷键大全

    Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...

  3. C#调用托管C++类(DLL)

    毕设是做一个网络摄像头的相关应用.界面用WPF,图像处理部分是OpenCV.没用EmguCV的原因是国内EmguCV的资料相对比较少,EmguCV虽然提供了Winform的控件,在做UI上有一定优势, ...

  4. XAMPP 的MYSQL无法启动

    最近在学习小程序,小程序的后台cms系统需要安装XAMPP软件,这个软件是个集成软件,里面有MySql 和 Apache 等 ,首先进入小程序后台时需要启动MySql 和 Apache Apache ...

  5. Note_JavaWeb_SpringMVC_尚硅谷

    Spring MVC框架 官网文档 \spring-framework-4.2.6.RELEASE\docs\spring-framework-reference\htmlsingle ------- ...

  6. form表单直接传文件

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  7. PHP使用正则表达式验证电话号码(手机和固定电话)

    这个还不错,很有用. tel='验证的电话号码'; $isMob="/^1[3-8]{1}[0-9]{9}$/";  $isTel="/^([0-9]{3,4}-)?[0 ...

  8. linux远程登录ssh免密码

    原文链接,感谢原作者. (一)问题: 假如我们现在有两台机器:ServerA和ServerB,现在想要让ServerA不用输入密码就能够进行访问. (二)方法和原理: 我们使用ssh-keygen在S ...

  9. box2d 已知bug

    1.动态刚体与一个与静态刚体重叠的小的感应刚体在contactBegin时,有些时候无法侦测到

  10. Activity的生命周期和启动模式

    Activity的生命周期分析 典型情况下的生命周期.是指在用户参与的情况下,Activity所经过的生命周期的改变. 异常情况下的生命周期.是指Activity被系统回收或者由于当前设备的Confi ...