#include #include char plocha [1001][1001]; int X = 0, O = 0; void zkontroluj (int x, int y, int vx, int vy) { char s = plocha[y][x]; int i; if (s == '.') return; // Na původním políčku není symbol for (i = 1; i < 5; i++) { // Symbol na i-tém políčku od [x, y] neodpovídá [x, y] if (s != plocha[y + i * vy][x + i * vx]) return; } if (s == 'O') { O++; } else { X++; } } int main ( void ) { int S, R, y, x; scanf("%d %d\n", &S, &R); for (y = 0; y < R; y++) { scanf("%s\n", &plocha[y][0]); // Načte S znaků do plocha[y][0..S] } X = O = 0; for (y = 0; y < R; y++) { for (x = 0; x < S; x++) { if (x > 3) zkontroluj(x, y, -1, 0); // doleva if (x > 3 && y > 3) zkontroluj(x, y, -1, -1); // doleva nahoru if (y > 3) zkontroluj(x, y, 0, -1); // nahoru if (x < S - 3 && y > 3) zkontroluj(x, y, 1, -1); // doprava nahoru } } printf("%d %d", X, O); return 0; }