#include <bits/stdc++.h>
using namespace std;
char matrice[3000][3001];
bool vizitat[3000][3001];
int main ()
{
ios :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int linii , coloane;
cin >> linii >> coloane;
for (int linie = 0 ; linie < linii ; linie++)
{ cin >> matrice[linie]; }
int cuplaj = 0;
for (int linie = 0 ; linie < linii ; linie++) {
for (int coloana = 0 ; coloana < coloane ; coloana++) {
if (matrice[linie][coloana] == 'R')
{
int aparitii[2] = { };
queue < pair <int , int> > ramas;
ramas.emplace(linie , coloana); vizitat[linie][coloana] = true;
while (!ramas.empty())
{
pair <int , int>& nod = ramas.front();
if (matrice[nod.first][nod.second] == 'W') {
if (nod.first > 1 && matrice[nod.first - 1][nod.second] == 'G' && matrice[nod.first - 2][nod.second] == 'R' && !vizitat[nod.first - 2][nod.second])
{ ramas.emplace(nod.first - 2 , nod.second); vizitat[nod.first - 2][nod.second] = true; }
if (nod.second > 1 && matrice[nod.first][nod.second - 1] == 'G' && matrice[nod.first][nod.second - 2] == 'R' && !vizitat[nod.first][nod.second - 2])
{ ramas.emplace(nod.first , nod.second - 2); vizitat[nod.first][nod.second - 2] = true; }
} else {
if (nod.first + 2 < linii && matrice[nod.first + 1][nod.second] == 'G' && matrice[nod.first + 2][nod.second] == 'W' && !vizitat[nod.first + 2][nod.second])
{ ramas.emplace(nod.first + 2 , nod.second); vizitat[nod.first + 2][nod.second] = true; }
if (nod.second + 2 < coloane && matrice[nod.first][nod.second + 1] == 'G' && matrice[nod.first][nod.second + 2] == 'W' && !vizitat[nod.first][nod.second + 2])
{ ramas.emplace(nod.first , nod.second + 2); vizitat[nod.first][nod.second + 2] = true; }
}
aparitii[matrice[nod.first][nod.second] == 'W' ? 0 : 1]++;
ramas.pop();
}
cuplaj += min(aparitii[0] , aparitii[1]);
}
}
}
cout << cuplaj;
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |