Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream cin("flip.in");
- ofstream cout("flip.out");
- int a[30][30];
- int main()
- {
- ///Citim datele.
- int n , m;
- cin>>n>>m;
- for(int i = 1;i<=n;i++)
- for(int j = 1;j<=m;j++)
- cin>>a[i][j];
- int p = (1<<m); // 2^m;
- long long sol = 0,sum = 0;
- /// in a[i][0] vom retine suma liniei i
- for(int comb = 1;comb < p; comb++)
- {
- ///Resetam sumele.
- for(int i = 1;i<=n;i++)
- a[i][0] = 0;
- sum = 0;
- ///Salvam combinatia pentru a o putea prelucra.
- int nr = comb;
- ///Parcurgem matricea *pe coloane* si inversam elementul daca e cazul.
- for(int j = 1;j <= m; j++, nr/=2)
- for(int i = 1;i<=n;i++)
- {
- if(nr%2==1) ///toata coloana va fi inversata.
- a[i][0]-=a[i][j];
- else a[i][0]+=a[i][j]; ///Toata coloana nu-i inversata.
- }
- for(int i = 1;i<=n;i++)
- sum+=abs(a[i][0]); /// adunam valoarea absoluta.
- sol = max(sol,sum);
- }
- cout<<sol;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement