Advertisement
a53

lumina

a53
May 17th, 2022
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <vector>
  4. #include <iomanip>
  5. #include <fstream>
  6. #include <algorithm>
  7. #include <cstring>
  8. using namespace std;
  9.  
  10.  
  11. int main()
  12. {
  13. int n, m, v[500][500], coloane_inversate[500], linii_inversate[500], col=1, line=1, nrcol1, nrcol0, nr11 = 0, nr12= 0;
  14. cin >> n >> m;
  15. for (int i = 1; i <= n; i++) {
  16. for (int j = 1; j <= m; j++) {
  17. cin >> v[i][j];
  18. }
  19. }
  20. int p = 0;
  21. //aflu daca mai multe becuri sunt aoprinse sau stinse
  22. for (int j = 1; j <= m; j++){
  23. if (v[1][j] == 0){
  24. nrcol0 = j;
  25. p++;
  26. }
  27. else
  28. nrcol1 = j;
  29. }
  30. for (int g = 1; g <= n; ++g){
  31. if (v[g][nrcol1] == 1){
  32. nr11++;
  33. }
  34. if (v[g][nrcol0] == 1){
  35. nr12++;
  36. }
  37. }
  38. if (p + nr12 > (m / 2) + nr11)
  39. p = 1;
  40. else
  41. p = 0;
  42.  
  43. for (int j = 1; j <= m; j++) //le schimb pe cele mai putine
  44. if (v[1][j] == p)
  45. {
  46. coloane_inversate[col++] = j;
  47. for (int i = 1; i <= n; i++)
  48. if (v[i][j] == 1)
  49. v[i][j] = 0;
  50. else
  51. v[i][j] = 1;
  52. }
  53.  
  54. int ok = 1; //schimb liniile cu nr 0
  55. for (int i = 1; i <= n && ok; i++)
  56. {
  57. if (v[i][1] == 0)
  58. linii_inversate[line++] = i;
  59. for (int j = 1; j < m && ok; j++)
  60. {
  61. if (v[i][j] != v[i][j + 1])
  62. ok = 0;
  63. }
  64. }
  65. if (ok)
  66. {
  67. cout << "DA" << endl;
  68. for (int i = 1; i < line; i++)
  69. cout << linii_inversate[i] << ' ';
  70. cout << '\n';
  71. for (int i = 1; i < col; i++)
  72. cout << coloane_inversate[i] << ' ';
  73. }
  74. else
  75. cout << "NU";
  76. return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement