Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- unsigned int m, n, i, j, maxX = 0, maxO = 0, now;
- int k, l;
- char **buf, *temp, nowch;
- scanf("%d %d", &m, &n);
- temp = (char *)malloc(2 * n);
- buf = (char **)malloc(m * sizeof(char*));
- buf[0] = (char *)malloc(n);
- for (i = 0, j = 0; ; j++) {
- while ((nowch = getchar()) != '1' && nowch != '0');
- buf[i][j] = nowch;
- if (j == n - 1) {
- i++;
- if (i == m) break;
- buf[i] = (char *)malloc(n);
- j = -1;
- }
- }
- for (j = 0; j < n; j++) {
- for (i = 0; i < m; i++) {
- nowch = buf[i][j];
- for (now = 0, k = i; k < m && buf[k][j] == nowch; k++, now++);
- if (nowch == '0') {
- if (now > maxO) maxO = now;
- } else if (now > maxX) maxX = now;
- for (now = 0, k = i; k >= 0 && buf[k][j] == nowch; k--, now++);
- if (nowch == '0') {
- if (now > maxO) maxO = now;
- } else if (now > maxX) maxX = now;
- for (now = 0, l = j; l < n && buf[i][l] == nowch; l++, now++);
- if (nowch == '0') {
- if (now > maxO) maxO = now;
- } else if (now > maxX) maxX = now;
- for (now = 0, l = j; l >= 0 && buf[i][l] == nowch; l--, now++);
- if (nowch == '0') {
- if (now > maxO) maxO = now;
- } else if (now > maxX) maxX = now;
- for (now = 0, k = i, l = j; l < n && k < m && buf[k][l] == nowch; k++, l++, now++);
- if (nowch == '0') {
- if (now > maxO) maxO = now;
- } else if (now > maxX) maxX = now;
- for (now = 0, k = i, l = j; l >= 0 && k >= 0 && buf[k][l] == nowch; k--, l--, now++);
- if (nowch == '0') {
- if (now > maxO) maxO = now;
- } else if (now > maxX) maxX = now;
- }
- }
- printf("%d %d", maxX, maxO);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement