Educational Codeforces Round 26 Problem B
B. Flag of Berlandtime limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
The flag of Berland is such rectangular field n × m that satisfies following conditions:
- Flag consists of three colors which correspond to letters 'R', 'G' and 'B'.
- Flag consists of three equal in width and height stripes, parralel to each other and to sides of the flag. Each stripe has exactly one color.
- Each color should be used in exactly one stripe.
You are given a field n × m, consisting of characters 'R', 'G' and 'B'. Output "YES" (without quotes) if this field corresponds to correct flag of Berland. Otherwise, print "NO" (without quotes).
InputThe first line contains two integer numbers n and m (1 ≤ n, m ≤ 100) — the sizes of the field.
Each of the following n lines consisting of m characters 'R', 'G' and 'B' — the description of the field.
OutputPrint "YES" (without quotes) if the given field corresponds to correct flag of Berland . Otherwise, print "NO" (without quotes).
Examplesinput6 5
RRRRR
RRRRR
BBBBB
BBBBB
GGGGG
GGGGGoutputYESinput4 3
BRG
BRG
BRG
BRGoutputYESinput6 7
RRRGGGG
RRRGGGG
RRRGGGG
RRRBBBB
RRRBBBB
RRRBBBBoutputNOinput4 4
RRRR
RRRR
BBBB
GGGGoutputNONoteThe field in the third example doesn't have three parralel stripes.
Rows of the field in the fourth example are parralel to each other and to borders. But they have different heights — 2, 1 and 1.
题目大意还不是很好表达。就是看能不能分成均等的三份;
只要遍历一遍就好了。
模拟吧,代码有点长
1 #include<iostream>
2 #include<stdio.h>
3 using namespace std;
4 char a[105][105];
5 int hang(int n,int m){ //验证行是否分成了三份
6 char fir=a[1][1],sec=a[n/3+1][1],three=a[n][1];
7 if(fir==sec||fir==three||sec==three){
8 return false;
9 }
10 for(int i=1;i<=n;i++){
11 for(int j=1;j<=m;j++){
12 if(i<=n/3){
13 if(a[i][j]!=fir){
14 return false;
15 }
16 }else if(i<=2*(n/3)){
17 if(a[i][j]!=sec){
18 return false;
19 }
20 }else{
21 if(a[i][j]!=three){
22 return false;
23 }
24 }
25 }
26 }
27 return true;
28 }
29 int lie(int n,int m){ //验证列是否分成三份
30 char fir=a[1][1],sec=a[1][m/3+1],three=a[1][m];
31 if(fir==sec||fir==three||sec==three){
32 return false;
33 }
34 for(int i=1;i<=n;i++){
35 for(int j=1;j<=m;j++){
36 if(j<=m/3){
37 if(a[i][j]!=fir){
38 return false;
39 }
40 }else if(j<=2*(m/3)){
41 if(a[i][j]!=sec){
42 return false;
43 }
44 }else{
45 if(a[i][j]!=three){
46 return false;
47 }
48 }
49 }
50 }
51 return true;
52 }
53 int main(){
54 int m,n;
55 cin>>n>>m;
56 for(int i=1;i<=n;i++){
57 for(int j=1;j<=m;j++){
58 cin>>a[i][j];
59 }
60 }
61 if(n%3!=0&&m%3!=0){
62 cout<<"NO"<<endl;
63 }else{
64 if(n%3==0&&m%3==0){
65 if(hang(n,m)||lie(n,m)){
66 cout<<"YES"<<endl;
67 }else{
68 cout<<"NO"<<endl;
69 }
70 }else if(n%3==0){
71 if(hang(n,m)){
72 cout<<"YES"<<endl;
73 }else{
74 cout<<"NO"<<endl;
75 }
76 }else{
77 if(lie(n,m)){
78 cout<<"YES"<<endl;
79 }else{
80 cout<<"NO"<<endl;
81 }
82 }
83 }
84 return 0;
85 }
Educational Codeforces Round 26 Problem B的更多相关文章
- Educational Codeforces Round 26
Educational Codeforces Round 26 困到不行的场,等着中午显示器到了就可以美滋滋了 A. Text Volume time limit per test 1 second ...
- CodeForces 837F - Prefix Sums | Educational Codeforces Round 26
按tutorial打的我血崩,死活挂第四组- - 思路来自FXXL /* CodeForces 837F - Prefix Sums [ 二分,组合数 ] | Educational Codeforc ...
- CodeForces - 837E - Vasya's Function | Educational Codeforces Round 26
/* CodeForces - 837E - Vasya's Function [ 数论 ] | Educational Codeforces Round 26 题意: f(a, 0) = 0; f( ...
- CodeForces 837D - Round Subset | Educational Codeforces Round 26
/* CodeForces 837D - Round Subset [ DP ] | Educational Codeforces Round 26 题意: 选k个数相乘让末尾0最多 分析: 第i个数 ...
- Educational Codeforces Round 32 Problem 888C - K-Dominant Character
1) Link to the problem: http://codeforces.com/contest/888/problem/C 2) Description: You are given a ...
- Educational Codeforces Round 26 [ D. Round Subset ] [ E. Vasya's Function ] [ F. Prefix Sums ]
PROBLEM D - Round Subset 题 OvO http://codeforces.com/contest/837/problem/D 837D 解 DP, dp[i][j]代表已经选择 ...
- Educational Codeforces Round 26 B,C
B. Flag of Berland 链接:http://codeforces.com/contest/837/problem/B 思路:题目要求判断三个字母是否是条纹型的,而且宽和高相同,那么先求出 ...
- Educational Codeforces Round 21 Problem E(Codeforces 808E) - 动态规划 - 贪心
After several latest reforms many tourists are planning to visit Berland, and Berland people underst ...
- Educational Codeforces Round 21 Problem D(Codeforces 808D)
Vasya has an array a consisting of positive integer numbers. Vasya wants to divide this array into t ...
- Educational Codeforces Round 21 Problem A - C
Problem A Lucky Year 题目传送门[here] 题目大意是说,只有一个数字非零的数是幸运的,给出一个数,求下一个幸运的数是多少. 这个幸运的数不是最高位的数字都是零,于是只跟最高位有 ...
随机推荐
- API接口技术的使用可以增加软件开发和运行的灵活性,降低软件运行和维护的成本
随着科技的发展和互联网的普及,越来越多的公司和企业把业务拓展到互联网上,这就需要用到API接口技术.API(Application Programming Interface,应用程序接口)是指不同软 ...
- [错误] SQL logic error near "date": syntax error
问题的来源 今天把一个项目的数据库从MySQL改到Sqlite 调试时发生了这个错误. 百度又看不懂英文(很多是国外发的), 就折腾了一下 原因 C# Sqlite 不能使用参数前缀"?&q ...
- 【matplotlib基础】--文本标注
Matplotlib 文本和标注可以为数据和图形之间提供额外的信息,帮助观察者更好地理解数据和图形的含义. 文本用于在图形中添加注释或提供更详细的信息,以帮助观察者理解图形的含义.标注则是一种更加细粒 ...
- 02-Shell变量
1.Shell变量 1.1 Shell变量的介绍 变量用于存储管理临时的数据, 这些数据都是在运行内存中的. 1.2 变量类型 系统环境变量 自定义变量 特殊符号变量 2.系统环境变量 2.1 介绍 ...
- Go语言常用标准库——json、文件操作、template、依赖管理及Go_module使用
文章目录 Go语言之json Marshal函数 Unmarshal函数 Go语言之文件操作 打开和关闭文件 读取文件 file.Read() 基本使用 循环读取 bufio读取文件 ioutil读取 ...
- 形象描绘TCP三次握手和四次挥手
一.TCP三次握手TCP 三次握手就好比两个人在街上隔着50米看见了对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对方是否认识自己.形象描绘TCP三次握手和四次挥手 张三首先向 ...
- JavaCore extends Plugin
/******************************************************************************* 2 * Copyright (c) 2 ...
- OKR 是什么?
OKR OKR 是什么? OKR(Objectives and Key Results)目标与关键结果管理法,起源于英特尔,后在谷歌发扬光大. OKR 是一套协助组织进行目标管理的工具和方法,旨在促进 ...
- K8s部署轻量级日志收集系统EFK(elasticsear + filebeat + kibana)
目录 K8s部署EFK(elasticsear + filebeat + kibana)日志收集 一.准备镜像 二.搭建Elasticsearch + kibana 1.在可执行kubectl命令的服 ...
- Semantic Kernel .NET SDK 的 v1.0.0 Beta1 发布
介绍 Semantic Kernel (SK) 是一个开源的将大型语言模型(LLM)与流行的编程语言相结合的SDK,Microsoft将Semantic Kernel(简称SK)称为轻量级SDK,结合 ...