Submission #153459

#TimeUsernameProblemLanguageResultExecution timeMemory
153459AlexLuchianovDango Maker (JOI18_dango_maker)C++14
13 / 100
12 ms380 KiB
#include <iostream>

using namespace std;

#define ll long long
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) < (b)) ? (b) : (a))

int const nmax = 3000;
char v[5 + nmax][5 + nmax];
int seen[5 + nmax][5 + nmax];

bool isdown(int x, int y){
  return v[x][y] == 'R' && v[x + 1][y] == 'G' && v[x + 2][y] == 'W';
}

bool isright(int x, int y){
  return v[x][y] == 'R' && v[x][y + 1] == 'G' && v[x][y + 2] == 'W';
}

int main()
{
  int n, m;
  cin >> n >> m;
  for(int i = 1;i <= n; i++)
    for(int j = 1;j <= m; j++)
      cin >> v[i][j];
  int result = 0;
  for(int i = 1;i <= n; i++)
    for(int j = 1;j <= m; j++) {
      if(isright(i, j) == 1){
        result++;
        v[i][j] = v[i][j + 1] = v[i][j + 2] = 0;
      } else if(isdown(i, j) == 1){
        if(isright(i + 1, j - 1) == 1 && isright(i + 2, j - 2) == 1)
          continue;
        else{
          result++;
          v[i][j] = v[i + 1][j] = v[i + 2][j] = 0;
        }
      }
    }
  cout << result;

  return 0;
}
/*
4 4
WWRW
WRGW
RGWW
WWWW
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...