Advertisement
CodigoL

yurumi C+

Sep 29th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <vector>
  4. #include <fstream>
  5. #include <string>
  6. using namespace std;
  7. int R=0,C=0;
  8. int RES[2][3],Z=0;
  9. vector < vector<bool> > M;
  10.  
  11. int mins(int a, int b, int c)
  12. {
  13. int m = a;
  14. if (m > b)
  15.     m = b;
  16. if (m > c)
  17.     m = c;
  18. return m;
  19. }
  20. void printMaxSubSquare()
  21. {
  22. int i,j;
  23. int S[R][C];
  24. int max_of_s, max_i, max_j;
  25.  
  26.  
  27. for(i = 0; i < R; i++)
  28.     {S[i][0] = M[i][0];}
  29.  
  30.  
  31. for(j = 0; j < C; j++)
  32.     S[0][j] = M[0][j];
  33.  
  34.  
  35. for(i = 1; i < R; i++)
  36. {
  37.     for(j = 1; j < C; j++)
  38.     {
  39.     if(M[i][j] == 1)
  40.         S[i][j] = mins(S[i][j-1], S[i-1][j], S[i-1][j-1]) + 1;
  41.     else
  42.         S[i][j] = 0;
  43.     }
  44. }
  45.  
  46.  
  47. max_of_s = S[0][0]; max_i = 0; max_j = 0;
  48. for(i = 0; i < R; i++)
  49. {
  50.     for(j = 0; j < C; j++)
  51.     {
  52.     if(max_of_s < S[i][j])
  53.     {
  54.         max_of_s = S[i][j];
  55.         max_i = i;
  56.         max_j = j;
  57.     }
  58.     }
  59. }
  60. RES[Z][0]=max_i-max_of_s+1;
  61. RES[Z][1]=(max_j-max_of_s+1);RES[Z][2]=(max_of_s);
  62. //printf("\n Maximum size sub-matrix is: \n");
  63. for(i = max_i; i > max_i - max_of_s; i--)
  64. {
  65.     for(j = max_j; j > max_j - max_of_s; j--)
  66.     {
  67.       M[i][j]=0;
  68.     }
  69. //  printf("\n");
  70. }
  71. }
  72.  
  73.  
  74.  
  75.  
  76. int main()
  77. { int o,mm,nn;
  78. ifstream FE("yurumi.in");
  79. FE>>R>>C;
  80. M.resize(R,vector <bool> (C,true));
  81. FE>>o;
  82. for(int i=0;i<o;i++)
  83. {FE>>mm>>nn; M[mm-1][nn-1]=false;}
  84. FE.close();
  85. printMaxSubSquare();
  86. Z++;
  87. printMaxSubSquare();
  88. ofstream FS("yurumi.out");
  89. for(int i=0;i<2;i++)
  90.     FS<<RES[i][0]<<" "<<RES[i][1]<<" "<<RES[i][2]<<endl;
  91. FS.close();
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement