Pagini recente » Cod sursa (job #486066) | Monitorul de evaluare | Cod sursa (job #1873247) | Cod sursa (job #96914) | Cod sursa (job #456883)
Cod sursa(job #456883)
/*
* flip.cpp
*
* Created on: May 17, 2010
* Author: Adrian
*/
#include<iostream.h>
#include<math.h>
#include<fstream.h>
unsigned n,m,flag;
long a[100][20];
void adun() {
flag=1;
unsigned sn,sp,i,j,k;
for( i=1;i<=n;i++){
sn=0;sp=0;
for( j=1;j<=m;j++)
if(a[i][j]>=0) sp+=a[i][j];
else sn+=abs(a[i][j]);
if(sn>sp) {for( k=1;k<=m;k++) a[i][k]=-a[i][k]; flag=0;}
}
for( j=1;j<=m;j++){
sn=0;sp=0;
for(i=1;i<=n;i++)
if(a[i][j]>=0) sp+=a[i][j];
else sn+=abs(a[i][j]);
if(sn>sp) for(k=1;k<=n;k++) {a[k][j]=-a[k][j]; flag=0;}
}
}
int main() {
ifstream f1("flip.in");
ofstream f2("flip.out");
f1>>n>>m;
for(unsigned i=1;i<=n;i++)
for(unsigned j=1;j<=m;j++)
f1>>a[i][j];
long s=0;
flag=0;
if(n>=1 && m<=16) {
while(!flag)
adun();
for(unsigned i=1;i<=n;i++)
for(unsigned j=1;j<=m;j++)
s+=a[i][j];
f2<<s;
}
f1.close();
f2.close();
return 0;
}