#include <bits/stdc++.h>
using namespace std;
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")
#define pb push_back
#define ll long long
//#define sort(all(v)) sort(v.begin(),v.end())
int mod = 998244353;
const int N = 4e5 + 10;
const int inf = 1e9;
int fact[200001];
ll binpow(ll a, ll b){
if(b == 0) return 1;
else if(b % 2 == 1) return (a * binpow(a, b - 1)) % mod;
ll p = binpow(a,b / 2);
return (p * p) % mod;
}
signed main(){
//freopen("mootube.in", "r", stdin);
//freopen("mootube.out", "w", stdout);
int n,m;
cin >> n >> m;
char a[n + 1][m + 1],a1[n + 1][m + 1];
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
cin >> a[i][j];
a1[i][j] = a[i][j];
}
}
if(n <= 2 && m <= 2){
cout << 0;
return 0;
}
int ans = 0;
if(n <= 2 && m >= 3){
int cnt = 0;
for(int i = 1; i <= n; i++){
if(a[i][1] == 'R' && a[i][2] == 'G' && a[i][3] == 'W')cnt++;
}
cout << cnt;
return 0;
}
else if(n >= 3 && m <= 2){
int cnt = 0;
for(int i = 1; i <= n; i++){
if(a[1][i] == 'R' && a[2][i] == 'G' && a[3][i] == 'W')cnt++;
}
cout << cnt;
return 0;
}
else if(n == 3 && m == 3){
int cnt = 0,cnt1 = 0;
for(int i = 1; i <= n; i++){
if(a[i][1] == 'R' && a[i][2] == 'G' && a[i][3] == 'W')cnt++;
}
for(int i = 1; i <= n; i++){
if(a[1][i] == 'R' && a[2][i] == 'G' && a[3][i] == 'W')cnt++;
}
cout << max(cnt,cnt1);
return 0;
}
int f = 0;
int cnt = 0;
for(int i = 1; i <= n; i++){
if(a[i][1] == 'R' && a[i][2] == 'G' && a[i][3] == 'W'){
cnt++;
a[i][1] = a[i][2] = a[i][3] = '%';
}
else if(m >= 4){
if(a[i][2] == 'R' && a[i][3] == 'G' && a[i][4] == 'W'){
cnt++;
a[i][2] = a[i][3] = a[i][4] = '%';
}
}
}
if(a[1][1] == 'R' && a[2][1] == 'G' && a[3][1] == 'W'){
cnt++;
}
else if(n >= 4){
if(a[2][1] == 'R' && a[3][1] == 'G' && a[4][1] == 'W'){
cnt++;
}
}
if(m >= 4){
if(a[1][4] == 'R' && a[2][4] == 'G' && a[3][4] == 'W'){
cnt++;
}
else if(n >= 4){
if(a[2][4] == 'R' && a[3][4] == 'G' && a[4][4] == 'W'){
cnt++;
}
}
}
ans = max(cnt,ans);
cnt = 0;
for(int i = 1; i <= n; i++){
if(a1[1][i] == 'R' && a1[2][i] == 'G' && a[3][i] == 'W'){
cnt++;
a1[1][i] = a1[2][i] = a1[3][i] = '%';
}
else if(n >= 4){
if(a1[2][i] == 'R' && a1[3][i] == 'G' && a1[4][i] == 'W'){
cnt++;
a1[2][i] = a1[3][i] = a1[4][i] = '%';
}
}
}
if(a1[1][1] == 'R' && a1[1][2] == 'G' && a[1][3] == 'W'){
cnt++;
}
else if(m >= 4){
if(a1[1][2] == 'R' && a1[1][3] == 'G' && a1[1][4] == 'W'){
cnt++;
}
}
if(n >= 4){
if(a1[4][1] == 'R' && a1[4][2] == 'G' && a[4][3] == 'W'){
cnt++;
}
else if(m >= 4){
if(a1[4][2] == 'R' && a1[4][3] == 'G' && a1[4][4] == 'W'){
cnt++;
}
}
}
ans = max(cnt,ans);
cnt = 0;
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |