Cod sursa(job #1817957)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 28 noiembrie 2016 18:26:00
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.58 kb
//
//  main.cpp
//  Flip
//
//  Created by Albastroiu Radu on 11/28/16.
//  Copyright © 2016 Albastroiu Radu. All rights reserved.
//

#include <iostream>
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>

using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");


// data strctures
int i, j, n, m, a[32][32], OK;
long long suma, suma_now, suma_after;

int main()
{
    fin >> n >> m;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= m; j++)
        {
            fin >> a[i][j];
            suma += a[i][j];
        }
    
    OK = 1;
    while(OK)
    {
        OK = 0;
        for(i = 1; i <= n; i++)
        {
            suma_now = suma_after = 0;
            for(j = 1; j <= m; j++)
            {
                suma_now += a[i][j];
                suma_after += -a[i][j];
            }
            
            if(suma_after > suma_now)
            {
                OK = 1;
                suma = suma - suma_now + suma_after;
                for(j = 1; j <= m; j++)
                    a[i][j] = -a[i][j];
            }
        }
        
        for(i = 1; i <= m; i++)
        {
            suma_now = suma_after = 0;
            for(j = 1; j <= n; j++)
            {
                suma_now += a[j][i];
                suma_after += -a[j][i];
            }
            
            if(suma_after > suma_now)
            {
                OK = 1;
                suma = suma - suma_now + suma_after;
                for(j = 1; j <= n; j++)
                    a[j][i] = -a[j][i];
            }
        }
    }
    
    fout << suma;
    
    return 0;
}