Cod sursa(job #1596755)

Utilizator TimoteiCopaciu Timotei Timotei Data 11 februarie 2016 13:04:02
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<fstream>
using namespace std;
int n,v[17],a[17][17],nr, S, m, mx;

  ifstream f("flip.in");
  ofstream g("flip.out");
struct suma{
 int lin, col;
}x, sum[17], mn;
void make_sum(int k)
{
    x.lin = x.col = 0;
    for(int i = 1; i <= k; i++){
        x.lin += sum[v[i]].lin;
        x.col += sum[v[i]].col;
    }
   if(x.lin < mn.lin) mn.lin = x.lin;
   if(x.col < mn.col) mn.col = x.col;
}
void permut(int k, int N)
{
    while (k > 0)
    {
        if(v[k] < N)
        {
            v[k]++;
            make_sum(k);
            k++;
            v[k] = v[k - 1];

        }
        else k--;
    }
}
int main()
{

    f >> n >> m;
    mn.lin = mn.col = int(2e9);
    for(int i = 1; i <= n; i++)
    for(int j = 1; j <= m; j++) {
            f >> a[i][j];
            sum[i].lin += a[i][j];
            sum[j].col += a[i][j];
            S+= a[i][j];
            }
    permut(1, max(n, m));
    g << S - mn.lin - mn.col + (mn.lin + mn.col) * (-1);
    return 0;
}