Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. const int N = 100;
  7.  
  8. ///Punctul b)
  9. void fB(bool a[N][N], int n, int m, int i, int j){
  10. ///Parcurgem patratul
  11. /// (i-1, j-1), (i-1, j)
  12. /// (i , j-1), (i , j)
  13. ///Si schimbam starea lor
  14. for ( int l = i-1; l <= i; l++ )
  15. for ( int c = j-1; c <= j; c++ )
  16. a[l][c] = !a[l][c];
  17. }
  18.  
  19. ///Punctul c)
  20. bool fC(bool a[N][N], int n, int m){
  21. ///Se aplica principiul greedy
  22.  
  23. ///Pornim de jos dreapta in sus stanga
  24. for ( int i = n-1; i > 0; i-- )
  25. for ( int j = m-1; j > 0; j-- )
  26. ///Trebuie sa facem o schimbare
  27. if ( a[i][j] ){
  28. fB(a, n, m, i, j);
  29.  
  30. ///Am ajuns in punctul in care daca avem 1 pe margine
  31. ///nu-l mai putem schimba in 0
  32. if ( i == 1 )
  33. if ( a[0][j] )
  34. return false;
  35. ///^
  36. if ( j == 1 )
  37. if ( a[i][0] )
  38. return false;
  39.  
  40. }
  41.  
  42. return true;
  43. }
  44.  
  45. int main(){
  46. ifstream fin("panouri.in");
  47. bool a[N][N];
  48. int n, m;
  49.  
  50. fin >> n >> m;
  51. for ( int i = 0; i < n; i++ )
  52. for ( int j = 0; j < m; j++ )
  53. fin >> a[i][j];
  54.  
  55. cout << fC(a, n, m) << "!\n\n";
  56.  
  57. for ( int i = 0; i < n; i++ ){
  58. for ( int j = 0; j < m; j++ )
  59. cout << a[i][j] << " ";
  60. cout << "\n";
  61. }
  62. fin.close();
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement