Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- char field[70][70];
- int n,m;
- void tom(int I,int J){
- if(!((I>=0 && I < n) && (J >= 0 && J < m)))return;
- if(field[I][J] == 'P')field[I][J] = 'D';
- else return;
- tom(I+1,J);
- tom(I-1,J);
- tom(I,J+1);
- tom(I,J-1);
- }
- int min(int a,int b){
- return (a < b ? a : b);
- }
- int main()
- {
- scanf("%d %d",&m,&n);
- for(int i=0;i<n;i++){
- scanf("%s",field[i]);
- }
- bool found = false;
- int maxsize = min(n,m);
- int maxans = -1;
- for(int size = maxsize ; size >= 1; size --){
- int minpool = 2e9;
- for(int I = 0 ; I <= n - size ; I ++ ){ //start I
- for(int J = 0 ; J <= m - size ; J ++ ){ //start J
- bool issq = true;
- int cntpool = 0;
- for(int i = I ; i < I + size && issq ; i ++){ //index i
- for(int j = J ; j < J + size && issq; j++){ // index j
- if(field[i][j] == 'T'){
- issq = false;
- break;
- }
- else if(field[i][j] == 'P'){
- tom(i,j);
- cntpool++;
- }
- }
- }
- for(int i = 0 ; i < n; i ++){ //index i
- for(int j = 0 ; j < m; j++){ // index j
- if(field[i][j] == 'D'){
- field[i][j] = 'P';
- }
- }
- }
- if(!issq)continue;
- if(cntpool < minpool){
- minpool = cntpool;
- maxans = size*size;
- }
- }
- }
- if(maxans != -1){
- printf("%d %d",maxans,minpool);
- return 0;
- }
- }
- printf("0 0");
- return 0;
- }
Add Comment
Please, Sign In to add comment