Cod sursa(job #1932200)

Utilizator GarnyatarCernov Alexandru Garnyatar Data 19 martie 2017 16:24:17
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n,m,a[16][16];
void flipl(int k)
{
    for(int i = 1 ; i <= m ; i++)
        a[k][i]*=-1;
}
void flipc(int k)
{
    for (int i = 1 ; i <= n ; i++)
        a[i][k]*=-1;
}
int pc(int k)
{
    int s = 0;
    for(int l = 0 ; l <= n ; l++ )
        s=s+(a[l][k]*(-1));
    return s;
}
int pl(int k)
{
    int s = 0;
    for(int l = 0 ; l <= m ; l++ )
        s=s+(a[k][l]*(-1));
    return s;
}
int sumaflipcol(int sc)
{
     for(int j = 1; j <= m; j++)
    {
        int s = 0;
        for (int i = 1 ; i <= n ; i++)
            s+=a[i][j];
        int k = pc(j);
        if(s<k) {flipc(j); sc+=k;}
            else sc+=s;

    }
    return sc;
}
int sumafliplin(int sl)
{
    for (int i = 1 ; i <= n ; i++)
    {
        int s = 0;
        for (int j = 1 ; j <= m ; j++)
            s+=a[i][j];
        int k = pl(i);
        if(s<k) {flipl(i); sl+=k;}
        else sl+=s;
    }
    return sl;
}
int main()
{
    cin>>n>>m;
    for(int i = 1 ; i <= n ; i++)
        for(int j = 1 ; j <= m ; j++) cin>>a[i][j];
    int sc = 0; int sl = 0;
    sc = sumaflipcol(sc);
    sl = sumafliplin(sl);
    if(sl<sc)cout<<sc;
        else cout<<sl;

    return 0;
}