SHARE
TWEET

Untitled

a guest Jan 12th, 2017 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #define NMax 1005 //!!!!!!!!!!!
  3.  
  4. int n;
  5. int p[NMax][NMax];
  6. char s[NMax][NMax];
  7.  
  8.  
  9. int main()
  10. {
  11.   int i, j, k, max, val, min;
  12.   //freopen("C.in", "rt", stdin);
  13.  
  14.   scanf("%d\n", &n);
  15.  
  16.   while (n)
  17.   {
  18.     for (i = 0; i < n; i++)
  19.       scanf("%s\n", s[i]);
  20.  
  21.     for (i = 0; i < n; i++)
  22.     {
  23.       for (j = 0; j < n; j++)
  24.       {
  25.         for (k = 0; i - k >= 0 && j + k < n && s[i - k][j] == s[i][j + k]; k++);
  26.         p[i][j] = k;
  27.       }
  28.     }
  29.  
  30.    
  31.     max = -1;
  32.     for (i = 0; i < n; i++)
  33.     {
  34.       for (j = 0; j < n; j++)
  35.       {
  36.  
  37.         val = p[i][j];
  38.  
  39.         if (p[i][j] > max)
  40.         {
  41.           for (k = 0; k <= p[i][j] && val > max; k++)
  42.           {
  43.             if (val > p[i-k][j+k] + k)
  44.               val = p[i-k][j+k] + k;
  45.  
  46.             min = val;
  47.             if (min > k + 1)
  48.               min = k + 1;
  49.  
  50.             if (max < min)
  51.               max = min;
  52.           }
  53.         }
  54.       }
  55.     }
  56.  
  57.     printf("%d\n", max);
  58.    
  59.  
  60.     scanf("%d\n", &n);
  61.   }
  62.  
  63.  
  64.   return 0;
  65. }
RAW Paste Data
Top