Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- const int N = 100;
- ///Punctul b)
- void fB(bool a[N][N], int n, int m, int i, int j){
- ///Parcurgem patratul
- /// (i-1, j-1), (i-1, j)
- /// (i , j-1), (i , j)
- ///Si schimbam starea lor
- for ( int l = i-1; l <= i; l++ )
- for ( int c = j-1; c <= j; c++ )
- a[l][c] = !a[l][c];
- }
- ///Punctul c)
- bool fC(bool a[N][N], int n, int m){
- ///Se aplica principiul greedy
- ///Pornim de jos dreapta in sus stanga
- for ( int i = n-1; i > 0; i-- )
- for ( int j = m-1; j > 0; j-- )
- ///Trebuie sa facem o schimbare
- if ( a[i][j] ){
- fB(a, n, m, i, j);
- ///Am ajuns in punctul in care daca avem 1 pe margine
- ///nu-l mai putem schimba in 0
- if ( i == 1 )
- if ( a[0][j] )
- return false;
- ///^
- if ( j == 1 )
- if ( a[i][0] )
- return false;
- }
- return true;
- }
- int main(){
- ifstream fin("panouri.in");
- bool a[N][N];
- int n, m;
- fin >> n >> m;
- for ( int i = 0; i < n; i++ )
- for ( int j = 0; j < m; j++ )
- fin >> a[i][j];
- cout << fC(a, n, m) << "!\n\n";
- for ( int i = 0; i < n; i++ ){
- for ( int j = 0; j < m; j++ )
- cout << a[i][j] << " ";
- cout << "\n";
- }
- fin.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement