Pagini recente » Cod sursa (job #210781) | Cod sursa (job #2637319) | Cod sursa (job #1888439) | Cod sursa (job #1419174) | Cod sursa (job #1740649)
#include <iostream>
#include <fstream>
using namespace std;
int a[20][20],v[20][20],n,m;
ifstream q("flip.in");
ofstream w("flip.out");
void comuta_rand(int c)
{
int i;
for(i=1;i<=m;i++) a[c][i]*=-1;
}
void comuta_col(int c)
{
int i;
for(i=1;i<=n;i++) a[i][c]*=-1;
}
///|||||||||||||||||||||||||||
int main()
{int i,j,s,ok;
q>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
q>>a[i][j];
}
}
ok=1;
while(ok)
{
for(i=1;i<=n;i++)
{
s=0;
for(j=1;j<=m;j++)
{
s+=a[i][j];
}
v[1][i]=s;
}
///
for(i=1;i<=m;i++)
{
s=0;
for(j=1;j<=n;j++)
{
s+=a[j][i];
}
v[2][i]=s;
}
int c,hm,l;
c=1;
l=n; ///folosit ca sa comutam din a verifica sumele celor n randuri, in sumele celor m coloane
hm=1;
s=v[1][1];
for(i=1;i<=2;i++)
{
for(j=1;j<=l;j++)
{
if(s>v[i][j]) {s=v[i][j]; hm=i; c=j;}
}
l=m;
}
if(s>=0) break;
if(hm==1)comuta_rand(c);
if(hm==2)comuta_col(c);
}
s=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=a[i][j];
w<<s;
return 0;
}