Cod sursa(job #1436001)
Utilizator | Popovici Robert PopoviciRobert | Data | 14 mai 2015 21:19:38 |
---|---|---|---|
Problema | Jocul Flip | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 1.05 kb |
#include <stdio.h>
#include <stdlib.h>
#define MAXN 16
int mat[MAXN][MAXN],v[MAXN];
int main(){
FILE*fi,*fout;
int i,j,n,m,max,s,s1,s2,nr,l,c;
fi=fopen("flip.in" ,"r");
fout=fopen("flip.out" ,"w");
fscanf(fi,"%d%d" ,&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(fi,"%d" ,&mat[i][j]);
max=0;
for(i=0;i<(1<<n);i++){
nr=i;
for(j=0;j<n;j++){
v[j]=nr%2;
nr/=2;
}
s=0;
for(c=0;c<m;c++){
s1=s2=0;
for(l=0;l<n;l++){
if(v[l]==1){
s1-=mat[l][c];
s2+=mat[l][c];
}
else{
s1+=mat[l][c];
s2-=mat[l][c];
}
}
if(s1>s2)
s+=s1;
else
s+=s2;
}
if(max<s)
max=s;
}
fprintf(fout,"%d" ,max);
fclose(fi);
fclose(fout);
return 0;
}