Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define optimizar ios_base::sync_with_stdio(0); cin.tie(0)
  3. #define MAXN 102
  4. using namespace std;
  5.  
  6. int n, m;
  7. int arr[MAXN][MAXN];
  8.  
  9. int matriz[MAXN][MAXN];
  10.  
  11.  
  12. struct ura {
  13. int N, S, E, O;
  14. int c;
  15.  
  16. void limpia() {
  17. for(int i = N; i <= S; i++)
  18. for(int j = O; j <= E; j++)
  19. matriz[i - N + 1][j - O + 1] = 0;
  20. }
  21.  
  22. bool igual(ura b) {
  23.  
  24. }
  25. };
  26.  
  27. vector < ura > clusters;
  28. int padre[MAXN];
  29.  
  30. int mov[8][2] = {
  31. -1, -1,
  32. -1, 0,
  33. -1, 1,
  34. 0, -1,
  35. 0, 1,
  36. 1, -1,
  37. 1, 0,
  38. 1, 1,
  39. };
  40.  
  41. void colorea(int i, int j, ura &nueva) {
  42. if(arr[i][j] != -1) return;
  43. arr[i][j] = nueva.c;
  44. nueva.N = min(nueva.N, i);
  45. nueva.S = max(nueva.S, i);
  46. nueva.E = max(nueva.E, j);
  47. nueva.O = min(nueva.O, j);
  48. for(int k = 0; k < 8; k++)
  49. colorea(i + mov[k][0], j + mov[k][1], nueva);
  50. }
  51.  
  52. int main()
  53. {
  54. optimizar;
  55. int color = 0;
  56. cin >> m >> n;
  57. char car;
  58. for(int i = 1; i <= n; i++)
  59. for(int j = 1; j <= m; j++) {
  60. cin >> car;
  61. if(car == '1') arr[i][j] = -1;
  62. }
  63. ura nueva;
  64. bool flag;
  65. for(int i = 1; i <= n; i++)
  66. for(int j = 1; j <= m; j++)
  67. if(arr[i][j] == -1) {
  68. nueva.N = nueva.S = i;
  69. nueva.E = nueva.O = j;
  70. nueva.c = ++color;
  71. colorea(i, j, nueva);
  72. flag = true;
  73. for(int k = 0; k < clusters.size(); k++) {
  74. if(clusters[k].igual(nueva)) {
  75. padre[color] = k;
  76. flag = false; break;
  77. }
  78. }
  79. if(flag) { padre[color] = clusters.size(); clusters.push_back(nueva); };
  80. }
  81.  
  82. for(int i = 1; i <= n; i++) {
  83. for(int j = 1; j <= m; j++) {
  84. car = arr[i][j] ? padre[arr[i][j]] + 'a' : '0';
  85. cout << car;
  86. }
  87. cout << "\n";
  88. }
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement