Cod sursa(job #1509721)
Utilizator | Data | 24 octombrie 2015 11:22:37 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 4.38 kb |
#include <iostream>
#include <fstream>
using namespace std;
int N,M,i,j,s,s1,s2,ok,ma,a[15][15],a2[15][15];
bool k;
int main()
{
ifstream f("flip.in");
ofstream g("flip.out");
f>>N;
f>>M;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
f>>a[i][j];
a2[i][j]=a[i][j];
}
for(j=0;j<M;j++)
{
for(i=0;i<N;i++)
if(a[i][j]<0)
s1=s1-a[i][j];
else
if(a[i][j]>0)
s2=s2+a[i][j];
if(s1>s2)
{
for(i=0;i<N;i++)
a[i][j]=a[i][j]*(-1);
k=true;
}
s1=s2=0;
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
if(a[i][j]<0)
s1=s1-a[i][j];
else
if(a[i][j]>0)
s2=s2+a[i][j];
if(s1>s2)
{
for(j=0;j<M;j++)
a[i][j]=a[i][j]*(-1);
k=true;
}
for(j=0;j<M;j++)
s=s+a[i][j];
s1=s2=0;
}
ma=s;
while(ok==0)
{
k=false;
s=0;
for(j=0;j<M;j++)
{
for(i=0;i<N;i++)
if(a[i][j]<0)
s1=s1-a[i][j];
else
if(a[i][j]>0)
s2=s2+a[i][j];
if(s1>s2)
{
for(i=0;i<N;i++)
a[i][j]=a[i][j]*(-1);
k=true;
}
s1=s2=0;
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
if(a[i][j]<0)
s1=s1-a[i][j];
else
if(a[i][j]>0)
s2=s2+a[i][j];
if(s1>s2)
{
for(j=0;j<M;j++)
a[i][j]=a[i][j]*(-1);
k=true;
}
for(j=0;j<M;j++)
s=s+a[i][j];
s1=s2=0;
}
if(s>ma)
ma=s;
if(k==false)
ok++;
}
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
if(a2[i][j]<0)
s1=s1-a2[i][j];
else
if(a2[i][j]>0)
s2=s2+a2[i][j];
if(s1>s2)
{
for(j=0;j<M;j++)
a2[i][j]=a2[i][j]*(-1);
k=true;
}
s1=s2=0;
}
for(j=0;j<M;j++)
{
for(i=0;i<N;i++)
if(a2[i][j]<0)
s1=s1-a2[i][j];
else
if(a2[i][j]>0)
s2=s2+a2[i][j];
if(s1>s2)
{
for(i=0;i<N;i++)
a2[i][j]=a2[i][j]*(-1);
k=true;
}
for(i=0;i<N;i++)
s=s+a2[i][j];
s1=s2=0;
}
ma=s;
while(ok==0)
{
k=false;
s=0;
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
if(a2[i][j]<0)
s1=s1-a2[i][j];
else
if(a2[i][j]>0)
s2=s2+a2[i][j];
if(s1>s2)
{
for(j=0;j<M;j++)
a2[i][j]=a2[i][j]*(-1);
k=true;
}
s1=s2=0;
}
for(j=0;j<M;j++)
{
for(i=0;i<N;i++)
if(a2[i][j]<0)
s1=s1-a2[i][j];
else
if(a[i][j]>0)
s2=s2+a2[i][j];
if(s1>s2)
{
for(i=0;i<N;i++)
a2[i][j]=a2[i][j]*(-1);
k=true;
}
for(i=0;i<N;i++)
s=s+a2[i][j];
s1=s2=0;
}
if(s>ma)
ma=s;
if(k==false)
ok++;
}
g<<s;
return 0;
}