Pagini recente » Cod sursa (job #53140) | Cod sursa (job #296121) | Cod sursa (job #2807923) | Cod sursa (job #629626) | Cod sursa (job #599129)
Cod sursa(job #599129)
#include <iostream>
#include <fstream>
#define nmax 17
#define size (sizeof(long)*8)
using namespace std;
int n, m, suma=-1000000;
int a[nmax][nmax], b[nmax][nmax];
void reset(){
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
a[i][j] = b[i][j];
}
void citire(){
ifstream in("flip.in");
in >> n >> m;
for(int i=0;i<n;++i)
for(int j=0;j<m;++j)
in >> b[i][j];
in.close();
}
int sm(){
int s=0;
for(int i=0;i<n;++i)
for(int j=0;j<m;++j) s+= a[i][j];
return s;
}
void comuta_linie(int x){
for(int i=0;i<m;++i)
a[x][i] *= -1;
}
void comuta_coloana(int x){
for(int i=0;i<n;++i)
a[i][x] *= -1;
}
void afis(){
ofstream out("flip.out");
out << suma;
out.close();
}
bool bit(long x, int i){
return (x>>i)&1;
}
void analiz(long x, long y){
int s;
reset();
for(int i=0;i<n;++i)
if(bit(x,i)) comuta_linie(i);
for(int i=0;i<m;++i)
if(bit(y,i)) comuta_coloana(i);
s = sm();
suma = s>suma?s:suma;
}
void rezolv(){
long i,j;
for(i=0;i<n;++i)
for(j=0;j<n;++j)
analiz(i,j);
}
int main()
{
citire();
rezolv();
afis();
return 0;
}