SuitNdtie

Cromatie

Apr 11th, 2019
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include<stdio.h>
  2. char field[70][70];
  3. int n,m;
  4. void tom(int I,int J){
  5.     if(!((I>=0 && I < n) && (J >= 0 && J < m)))return;
  6.     if(field[I][J] == 'P')field[I][J] = 'D';
  7.     else return;
  8.     tom(I+1,J);
  9.     tom(I-1,J);
  10.     tom(I,J+1);
  11.     tom(I,J-1);
  12. }
  13.  
  14. int min(int a,int b){
  15.     return (a < b ? a : b);
  16. }
  17.  
  18. int main()
  19. {
  20.     scanf("%d %d",&m,&n);
  21.     for(int i=0;i<n;i++){
  22.         scanf("%s",field[i]);
  23.     }
  24.     bool found = false;
  25.     int maxsize = min(n,m);
  26.     int maxans = -1;
  27.     for(int size = maxsize ; size >= 1; size --){
  28.         int minpool = 2e9;
  29.         for(int I = 0 ; I <= n - size ; I ++ ){ //start I
  30.             for(int J = 0 ; J <= m - size ; J ++ ){ //start J
  31.                 bool issq = true;
  32.                 int cntpool = 0;
  33.                 for(int i = I ; i < I + size && issq ; i ++){ //index i
  34.                     for(int j = J ; j < J + size && issq; j++){ // index j
  35.                         if(field[i][j] == 'T'){
  36.                             issq = false;
  37.                             break;
  38.                         }
  39.                         else if(field[i][j] == 'P'){
  40.                             tom(i,j);
  41.                             cntpool++;
  42.                         }
  43.                     }
  44.                 }
  45.                 for(int i = 0 ; i < n; i ++){ //index i
  46.                     for(int j = 0 ; j < m; j++){ // index j
  47.                         if(field[i][j] == 'D'){
  48.                             field[i][j] = 'P';
  49.                         }
  50.                     }
  51.                 }
  52.                 if(!issq)continue;
  53.                 if(cntpool < minpool){
  54.                     minpool = cntpool;
  55.                     maxans = size*size;
  56.                 }
  57.             }
  58.         }
  59.         if(maxans != -1){
  60.             printf("%d %d",maxans,minpool);
  61.             return 0;
  62.         }
  63.     }
  64.     printf("0 0");
  65.     return 0;
  66. }
Add Comment
Please, Sign In to add comment