Cod sursa(job #97317)

Utilizator GagosGagos Radu Vasile Gagos Data 6 noiembrie 2007 15:35:31
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream.h>
#define I "flip.in"
#define O "flip.out"
int n,m,maxx,st[100],a[100];
void init(int k)
{
st[k]=0;
}
int succ(int k)
{
if(st[k]<st[k-1]+1)
{
st[k]=st[k]+1;return 1;
}
return 0;
}
int valid(int k)
{
return 1;
}
int sol(int k)
{
return k==n;
}
void tipar(){
int max=0,i,j,s=0;
for(i=1;i<=n;++i)
if(st[i]==0)
for(j=1;j<=m;++j)
a[i][j]*=(-1);
for(i=1;i<=n;++i){
for(j=1;j<=m;++j)
s+=a[j][i];
if(s<0)
for(j=1;j<=m;++j){
a[j][i]*=-1;max+=a[j][i];
}
else
max+=s;
s=0;
}
if(max>maxx)
maxx=max;
}
void bkt(int k){
init(k);
while(succ(k))
if(valid(k))
if(sol(k))
tipar();
else
bkt(k+1);
}
int main()
{
ifstream f(I);
ofstream g(O);
f>>n>>m;
for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
f>>a[i][j];
bkt(1);
g<<maxx<<endl;
f.close();g.close();
return 0;
}