Cod sursa(job #1310737)
Utilizator | Data | 7 ianuarie 2015 09:37:32 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.53 kb |
#include<fstream>
using namespace std;
int a[17][17],m,n,smax,i,j;
void rezolvare(int a[17][17],int N, int M,int &smax)
{
int p,i,x,j,r,k,s,t;
p=(1<<M);
for(i=0;i<=p-1;i++)
{
x=i;
for(j=1;j<=M;j++)
{
r=x%2;
if(r==1)
{
for(k=1;k<=N;k++)
{
a[k][j]=-a[k][j];
}
}
x=x/2;
}
s=0;
for(k=1;k<=N;k++)
{
t=0;
for(j=1;j<=M;j++)
{
t=t+a[k][j];
}
if(t<0)
{
t=-t;
}
s=s+t;
if(s>smax)
{
smax=s;
}
x=i;
for(j=1;j<=M;j++)
{
r=x%2;
if(r==1)
{
if(r==1)
{
for(k=1;k<=N;k++)
{
a[k][j]=-a[k][j];
}
}
x=x/2;
}
}
}
}
}
fstream fin,fout;
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
fin>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fin>>a[i][j];
}
}
rezolvare(a,n,m,smax);
fout<<smax;
fin.close();
fout.close();
return 0;
}