Cod sursa(job #2031989)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 4 octombrie 2017 10:17:36
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int v[16][16];
int l[16];
int c[16];

long long calc(int n, int m){
    int i=0,j=0;
    long long suma=0;
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            suma+=1LL*v[i][j]*l[i]*c[j];
        }
    }
    return suma;
}

int main()
{
    FILE *fin, *fout;
    int n,m,i,j,caz;
    long long max,s;
    fin=fopen("flip.in","r");
    fout=fopen("flip.out","w");
    fscanf(fin,"%d%d",&n,&m);
    for(i=0;i<n || i<m;i++){
        l[i]=1;
        c[i]=1;
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            fscanf(fin,"%d",&v[i][j]);
        }
    }
    max=calc(n,m);
    int putere=1;
    putere=putere<<n;
    putere=putere<<m;
    for(caz=1;caz<putere;caz++){
        l[0]=-l[0];
        i=0;
        while(l[i]>0 && i<n){
            i++;
            l[i]=-l[i];
        }
        if(i==n){
            c[0]=-c[0];
            i=0;
                while(c[i]>0 && i<m){
                i++;
                c[i]=-c[i];
            }
        }
        s=1LL*calc(n,m);
        if(s>max)
            max=s;
    }
    fprintf(fout,"%lld",max);
    fclose(fin);
    fclose(fout);
    return 0;
}