Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- #include <vector>
- #include <iomanip>
- #include <fstream>
- #include <algorithm>
- #include <cstring>
- using namespace std;
- int main()
- {
- int n, m, v[500][500], coloane_inversate[500], linii_inversate[500], col=1, line=1, nrcol1, nrcol0, nr11 = 0, nr12= 0;
- cin >> n >> m;
- for (int i = 1; i <= n; i++) {
- for (int j = 1; j <= m; j++) {
- cin >> v[i][j];
- }
- }
- int p = 0;
- //aflu daca mai multe becuri sunt aoprinse sau stinse
- for (int j = 1; j <= m; j++){
- if (v[1][j] == 0){
- nrcol0 = j;
- p++;
- }
- else
- nrcol1 = j;
- }
- for (int g = 1; g <= n; ++g){
- if (v[g][nrcol1] == 1){
- nr11++;
- }
- if (v[g][nrcol0] == 1){
- nr12++;
- }
- }
- if (p + nr12 > (m / 2) + nr11)
- p = 1;
- else
- p = 0;
- for (int j = 1; j <= m; j++) //le schimb pe cele mai putine
- if (v[1][j] == p)
- {
- coloane_inversate[col++] = j;
- for (int i = 1; i <= n; i++)
- if (v[i][j] == 1)
- v[i][j] = 0;
- else
- v[i][j] = 1;
- }
- int ok = 1; //schimb liniile cu nr 0
- for (int i = 1; i <= n && ok; i++)
- {
- if (v[i][1] == 0)
- linii_inversate[line++] = i;
- for (int j = 1; j < m && ok; j++)
- {
- if (v[i][j] != v[i][j + 1])
- ok = 0;
- }
- }
- if (ok)
- {
- cout << "DA" << endl;
- for (int i = 1; i < line; i++)
- cout << linii_inversate[i] << ' ';
- cout << '\n';
- for (int i = 1; i < col; i++)
- cout << coloane_inversate[i] << ' ';
- }
- else
- cout << "NU";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement