Cod sursa(job #1418444)

Utilizator Daria09Florea Daria Daria09 Data 13 aprilie 2015 09:57:05
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;
struct flip
{
    int p,m;
};
flip sum[33];
int sum_max,n,m,sum_initial,a[17][17],c[33];
void generare()
{
    sum_max=sum_initial;
    int ok=0,i,x;
    while(ok==0)
    {
        x=sum_initial; for(i=1;i<=m+n;i++)if(c[i]==1)x=x-sum[i].p+sum[i].m;
        if(x>sum_max)sum_max=x; i=n+m;
        while(c[i]==1&&i>=1)
        { c[i]=0; i--; }
        if(i==0)ok=1;
        else
        c[i]=1;
    }
}
ifstream f("flip.in");
ofstream g("flip.out");
int main()
{
    f>>n>>m; int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
    {
        f>>a[i][j]; sum_initial+=a[i][j];
        sum[i].p+=a[i][j];
        sum[i].m-=a[i][j];
    }
    for(j=n+1;j<=n+m;j++)
        for(i=1;i<=n;i++)
        { sum[j].p+=a[i][j-n];
          sum[j].m-=a[i][j-n];
        }
    generare();
    g<<sum_max;
    return 0;
}