Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5.     unsigned int m, n, i, j, k, l, maxX = 0, maxO = 0, now;
  6.     char **buf, *temp, nowch;
  7.     scanf("%d %d", &m, &n);
  8.     temp = (char *)malloc(2 * n);
  9.     buf = (char **)malloc(m * sizeof(char*));
  10.     buf[0] = (char *)malloc(n);
  11.     for (i = 0, j = 0; ; j++) {
  12.         while ((nowch = getchar()) != '1' && nowch != '0');
  13.         buf[i][j] = nowch;
  14.         if (j == n - 1) {
  15.             i++;
  16.             if (i == m) break;
  17.             buf[i] = (char *)malloc(n);
  18.             j = -1;
  19.         }
  20.     }
  21.     for (j = 0; j < n; j++) {
  22.         for (i = 0; i < m; i++) {
  23.             nowch = buf[i][j];
  24.             for (now = 0, k = i; k < m && buf[k][j] == nowch; k++, now++);
  25.             if (nowch == '0') {
  26.                 if (now > maxO) maxO = now;
  27.             } else if (now > maxX) maxX = now;
  28.             for (now = 0, k = i - 1; k > 0 && buf[k + 1][j] == nowch; k--, now++);
  29.             if (nowch == '0') {
  30.                 if (now > maxO) maxO = now;
  31.             } else if (now > maxX) maxX = now;
  32.             for (now = 0, l = j; l < n && buf[i][l] == nowch; l++, now++);
  33.             if (nowch == '0') {
  34.                 if (now > maxO) maxO = now;
  35.             } else if (now > maxX) maxX = now;
  36.             for (now = 0, l = j - 1; l > 0 && buf[i][l + 1] == nowch; l--, now++);
  37.             if (nowch == '0') {
  38.                 if (now > maxO) maxO = now;
  39.             } else if (now > maxX) maxX = now;
  40.             for (now = 0, k = i, l = j; l < n && k < m && buf[k][l] == nowch; k++, l++, now++);
  41.             if (nowch == '0') {
  42.                 if (now > maxO) maxO = now;
  43.             } else if (now > maxX) maxX = now;
  44.             for (now = 0, k = i - 1, l = j - 1; l > 0 && k > 0 && buf[k + 1][l + 1] == nowch; k--, l--, now++);
  45.             if (nowch == '0') {
  46.                 if (now > maxO) maxO = now;
  47.             } else if (now > maxX) maxX = now;
  48.         }
  49.     }
  50.     printf("%d %d", maxX, maxO);
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement