Cod sursa(job #1127434)
Utilizator | Data | 27 februarie 2014 12:28:29 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.62 kb |
#include <iostream>
#include <fstream>
int N,M;
using namespace std;
int main()
{
int i,j,n=0,s=0,k=0;
ifstream f("flip.in");
ofstream g("flip.out");
f>>N>>M;
int T[N][M];
for (i=1;i<=N;i++)
{
for (j=1;j<=M;j++)
{
f>>T[i][j];
}
}
if (N<M and N>=1 and M<=16)
{
for (i=1;i<=N;i++)
{
for (j=1;j<=M;j++)
{
if (T[i][j]>=0)
{
n=n+T[i][j];
}
else
{
s=s+(T[i][j]*(-1));
}
}
if (s>n)
{
for (j=1;j<=M;j++)
{
T[i][j]*=(-1);
}
}
n=0,s=0;
}
//Pass 1 end;
for (j=1;j<=M;j++)
{
for (i=1;i<=N;i++)
{
if (T[i][j]>=0)
{
n=n+T[i][j];
}
else
{
s=s+(T[i][j]*(-1));
}
}
if (s>n)
{
for (i=1;i<=N;i++)
{
T[i][j]*=(-1);
}
}
n=0,s=0;
}
}
if (N>M and N>=1 and M<=16)
{
for (j=1;j<=M;j++)
{
for (i=1;i<=N;i++)
{
if (T[i][j]>=0)
{
n=n+T[i][j];
}
else
{
s=s+(T[i][j]*(-1));
}
}
if (s>n)
{
for (i=1;i<=N;i++)
{
T[i][j]*=(-1);
}
}
n=0,s=0;
}
for (i=1;i<=N;i++)
{
for (j=1;j<=M;j++)
{
if (T[i][j]>=0)
{
n=n+T[i][j];
}
else
{
s=s+(T[i][j]*(-1));
}
}
if (s>n)
{
for (j=1;j<=M;j++)
{
T[i][j]*=(-1);
}
}
n=0,s=0;
}
}
for (i=1;i<=N;i++)
{
for (j=1;j<=M;j++)
{
k=k+T[i][j];
}
}
g<<k;
f.close(),g.close();
return 0;
}