SuitNdtie

Untitled

Apr 11th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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. }
Advertisement
Add Comment
Please, Sign In to add comment