Advertisement
Hezov

Jocul flip

Jun 8th, 2024
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | Source Code | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream cin("flip.in");
  4. ofstream cout("flip.out");
  5. int a[30][30];
  6. int main()
  7. {
  8.     ///Citim datele.
  9.     int n , m;
  10.     cin>>n>>m;
  11.     for(int i = 1;i<=n;i++)
  12.         for(int j = 1;j<=m;j++)
  13.             cin>>a[i][j];
  14.     int p = (1<<m); // 2^m;
  15.     long long sol = 0,sum = 0;
  16.     /// in a[i][0] vom retine suma liniei i
  17.     for(int comb = 1;comb < p; comb++)
  18.     {
  19.         ///Resetam sumele.
  20.         for(int i = 1;i<=n;i++)
  21.             a[i][0] = 0;
  22.         sum = 0;
  23.         ///Salvam combinatia pentru a o putea prelucra.
  24.         int nr = comb;
  25.         ///Parcurgem matricea *pe coloane* si inversam elementul daca e cazul.
  26.         for(int j = 1;j <= m; j++, nr/=2)
  27.             for(int i = 1;i<=n;i++)
  28.             {
  29.                 if(nr%2==1) ///toata coloana va fi inversata.
  30.                     a[i][0]-=a[i][j];
  31.                 else a[i][0]+=a[i][j]; ///Toata coloana nu-i inversata.
  32.             }
  33.         for(int i = 1;i<=n;i++)
  34.             sum+=abs(a[i][0]); /// adunam valoarea absoluta.
  35.         sol = max(sol,sum);
  36.     }
  37.     cout<<sol;
  38.     return 0;
  39. }
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement