Pagini recente » Cod sursa (job #2658554) | Cod sursa (job #1104642) | Cod sursa (job #2350207) | Cod sursa (job #1731564) | Cod sursa (job #1829218)
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>
using namespace std;
int rrrand[20],init_rrrand[20];
int col[20],init_col[20];
int x[20][20];
vector <int> z;
int what_to_flip[20];
int rezultat;
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
int n_i,n_j;
fin>>n_i>>n_j;
for(int i=1;i<=n_i;i++){
for(int j=1;j<=n_j;j++){
fin>>x[i][j];
init_rrrand[i]+=x[i][j];
init_col[j]+=x[i][j];
}
}
int limita=pow(2,n_j)-1;
for(int mask=0;mask<=limita;mask++){
int clona = mask;
int nrtaiat=1;
int sum_test;
while(clona != 0){
sum_test=0;
if(clona%2==1){
what_to_flip[nrtaiat]=1;
}else{
what_to_flip[nrtaiat]=0;
}
nrtaiat++;
clona/=2;
}
/// aici incepe distractia
// for(int q=1;q<=16;q++){
// if(what_to_flip[q]==1)
// sum-=init_col[q];
// else
// sum+=init_col[q];
// }
int sum=0;
for(int q=1;q<=n_i;q++){
int sum_rrrand=0;
for(int w=1; w<=n_j; w++){
if(what_to_flip[w]==1)
sum_rrrand-=x[q][w];
else
sum_rrrand+=x[q][w];
}
if(sum_rrrand>0)
sum+=sum_rrrand;
else
sum-=sum_rrrand;
}
rezultat=max(sum,rezultat);
nrtaiat=1;
}
fout<<rezultat;
return 0;
}
///pt flip pe coloane , doar modific semnul la col
///pt flip pe rrranduri