19167 烟花
时间限制:1000MS 代码长度限制:10KB
提交次数:126 通过次数:49
题型: 编程题 语言: 不限定
Description
很奇怪,在某天醒来后DjTaNg发现他自己处于一个孤岛之中。 而且经过几天的生活,他怀疑他似乎掉进了循环。 既然这里是孤岛,DjTaNg是怎么发现循环的呢?每到晚上凌晨的时候,他总能看到大海的远方在放烟花。 那些烟花在空中形成了烟花矩阵,矩阵中的图案一共有两种,要么是“2020”,要么是“2021”, 而且总是先放几天“2020”,然后再放几天“2021”,然后又放“2020”。 一般来说,新年才会放烟花,而且烟花的图案要么是“2020”,不然就是“2021”。所以DjTaNg就怀疑, 他掉进了循环,而且他循环的时间段是2020年末到2021年初。 那天准备到放烟花的时间,他坐在海边,用手指向海对面,说道:“把海对面的XXXX,我们就真的能自由了吗?” 说完,一片浪花拍到他的脸上。他的视力变得模糊,又恰好当时刚好放烟花了。 假如你就是DjTaNg,由于眼睛进水的影响,你看到的烟花是由两个字符组成。请你判断一下, 烟花矩阵的图案是“2020”还是“2021”。
输入格式
第一行包含两个整数 n 和 m (1<=n,m<=50)以及两个字符,第一个字符将表示烟花矩阵的背景, 第二个字符将组成数字,接下来的 n 行每行包含 m 个字符表示烟花矩阵。
输出格式
如果矩阵上是“2020”则输出2020,如果矩阵上是“2021”就输出2021。
输入样例
5 11 o w wwowwwowwow owowowoowow wwowowowwoo woowwwowooo wwooooowwoo
输出样例
2021
其实只用判断最后一个数字是1还是0,若是1则只会占一列,是0则会占超过一列,因此从最后一列开始找,判断代表烟花的字符是否只占一列即可。
#include <iostream>
#include <algorithm>
#include <cstring>
#include <math.h>
#include <stdio.h>
#include <vector>
#include <string>
#include <map>
using namespace std;
char s[55][55];
int main()
{
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
char a,b;
cin>>a>>b;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cin>>s[i][j];
}
int flag=0;
for(int i=m-1;i>0;i--)
{
for(int j=0;j<n;j++)
{
if(s[j][i]==b)
{
for(int k=0;k<n;k++)
{
if(s[k][i-1]==b)
flag=1;
}
if(flag)
cout<<2020;
else
cout<<2021;
return 0;
}
}
}
return 0;
}