Cod sursa(job #1167668)
| Utilizator | Data | 5 aprilie 2014 18:17:50 | |
|---|---|---|---|
| Problema | Jocul Flip | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.21 kb |
#include<cstdio>
#include<cstring>
int n,m,i,j,x[50][50],y[50][50],v[50],s,smax,l;
FILE *f,*g;
int main(){
f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
fscanf(f,"%d",&x[i][j]);
s+=x[i][j];
}
}
smax=s;
memcpy(y,x,sizeof(x));
while(v[0]==0){
i=m;
while(i!=0&&v[i]==1){
v[i]=0;
i--;
}
v[i]=1;
for(i=1;i<=m;i++){
if(v[i]==1){
for(j=1;j<=n;j++){
x[j][i]*=-1;
}
}
}
for(i=1;i<=n;i++){
l=0;
for(j=1;j<=m;j++){
l+=x[i][j];
}
if(l<0){
for(j=1;j<=m;j++){
x[i][j]*=-1;
}
}
}
s=0;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
s+=x[i][j];
}
}
if(s>smax)
smax=s;
memcpy(x,y,sizeof(y));
}
fprintf(g,"%d\n",smax);
fclose(f);
fclose(g);
return 0;
}
