Cod sursa(job #903922)

Utilizator bonta.florinbonta florin bonta.florin Data 3 martie 2013 13:43:06
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include<string.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,x[17],m,a[17][17],j,i,s,Max,b[17][17];
int sum(int a[17][17]){
    s=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            s+=a[i][j];
    return s;
}
void schimba(int k){
    for(i=1;i<=k;i++)
        for(j=1;j<=m;j++)
            a[x[i]][j]*=-1;
}
void coloana(){
    for(j=1;j<=m;j++){
        s=0;
        for(i=1;i<=n;i++)
            s+=a[i][j];
        if(s<0)
            for(i=1;i<=n;i++)
                a[i][j]*=-1;
    }
}
void back(int k){
    for(int o=x[k-1]+1;o<=n;o++){
       memcpy(a,b,sizeof(b));
        x[k]=o;
        schimba(k);
        coloana();
        if(sum(a)>Max)
            Max=sum(a);
        if(k<n)
            back(k+1);
    }
}
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
            f>>a[i][j];
            b[i][j]=a[i][j];}
    back(1);
    g<<Max;
}