NC214393. 2020vs2018
描述
题外话:你还记得2018您让你输出2018字符串画的湖南省赛题吗?
输入描述
输入文件包含多组数据,请处理到文件结束。每组数据的第一行包含两个整数 n 和 m,接下来的 n 行每行包含 m 个字符表示字符画。· 1 ≤ n, m ≤ 50· 数据组数不超过 100.· 字符画·· 只包含 '.' 和 'o' 两种字符;·· 只会是2018或者2020的字符画;·· 不同数字的字符 'o' 不会(在8个方向上)相邻·· 壁画都是水平或者竖直的,但是大小和位置都可能任意出现。
输出描述
对于每组数据,如果给出的字符画是2020,输出2020,否则输出2018。
示例1
输入:
6 14 .............. .oo.ooo.oo.ooo ..o.o.o..o.o.o .oo.o.o.oo.o.o .o..o.o.o..o.o .oo.ooo.oo.ooo 6 14 ....ooo....ooo .oo.o.o..o.o.o ..o.o.o..o.ooo .oo.o.o..o.o.o .o..ooo..o.o.o .oo......o.ooo 11 12 ooo...ooo... o.o.....o... ooo...ooo... ......o..... ooooo.o.ooo. o...o.o...o. o...o.ooo.o. o...o.....o. o...o...ooo. o...o...o... ooooo...ooo.
输出:
2020 2018 2020
C++ 解法, 执行用时: 4ms, 内存消耗: 472K, 提交时间: 2021-07-31 23:48:59
#include<bits/stdc++.h> using namespace std; int n, m; int f() { string s[55]; for(int i = 0; i < n; i++) cin >> s[i]; for(int i = 1; i < n-1; i++) for(int j = 1; j < m; j++) if(s[i][j] == 'o' && s[i-1][j] == 'o'&& s[i+1][j] == 'o' && s[i][j-1] == 'o') return 2018; return 2020; } int main() { while(cin >> n >> m) cout << f() << endl; }