Cod sursa(job #6367)

Utilizator vranauIonutVranau vranau Data 19 ianuarie 2007 01:35:17
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <fstream>
using namespace std;

long int a[18][18];

ifstream f("flip.in");
ofstream g("flip.out");

int n,m,mc,ml,mli,mcj,s;

void Solve();
void Min();
void Read();
void ComutaLinia(int i);
void ComutaColoana(int j);

int main()
{    
    Read();    
    Solve();
    
    f.close();
    g.close();
    
    return 0;
}
void Read()
{
    int v;
    f >> n >> m;
    for( int i = 1; i <= n; i++)
    {
        v = 0;   
        for ( int j = 1; j <= m; j++)
        {
                f>> a[i][j];
                v += a[i][j];
        }   
        a[i][0] = v; 
    }
    int p;
    for ( int t = 1; t <= m; t++)
    {
        p = 0;
        for ( int u = 1; u  <= n; u++)
            p += a[u][t];
        a[0][t] = p;
    }    
}
void Solve()
{
    Min();
    ComutaLinia(mli);
    ComutaColoana(mcj);
    
    for( int i = 1; i <= n; i++)
        for ( int j = 1; j <= m; j++)
                s += a[i][j];
    g << s;    
    
    
}        
void Min()
{
    for ( int j = 1; j <= m; j++)
        if ( mc > a[0][j] ) 
        {
            mc = a[0][j];
            mcj = j;
        }
    for ( int i = 1; i <= n; i++)
        if ( ml > a[i][0] )
        {
            ml = a[i][0];
            mli = i;
        }
}        
void ComutaLinia(int i)
{
    for ( int j = 1; j <= m; j++)
        a[i][j] = a[i][j] * (-1);
}   
void ComutaColoana(int j)
{
    for ( int i = 1; i <= n; i++)
        a[i][j] = a[i][j] * (-1);
}