Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define NMax 1005 //!!!!!!!!!!!
- int n;
- int p[NMax][NMax];
- char s[NMax][NMax];
- int main()
- {
- int i, j, k, max, val, min;
- //freopen("C.in", "rt", stdin);
- scanf("%d\n", &n);
- while (n)
- {
- for (i = 0; i < n; i++)
- scanf("%s\n", s[i]);
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < n; j++)
- {
- for (k = 0; i - k >= 0 && j + k < n && s[i - k][j] == s[i][j + k]; k++);
- p[i][j] = k;
- }
- }
- max = -1;
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < n; j++)
- {
- val = p[i][j];
- if (p[i][j] > max)
- {
- for (k = 0; k <= p[i][j] && val > max; k++)
- {
- if (val > p[i-k][j+k] + k)
- val = p[i-k][j+k] + k;
- min = val;
- if (min > k + 1)
- min = k + 1;
- if (max < min)
- max = min;
- }
- }
- }
- }
- printf("%d\n", max);
- scanf("%d\n", &n);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement