Pagini recente » Cod sursa (job #1578709) | Cod sursa (job #2513319) | Cod sursa (job #2869538) | Cod sursa (job #2588262) | Cod sursa (job #2359504)
#include<fstream>
using namespace std;
int main()
{
ifstream fin ( "flip.in" );
ofstream fout ( "flip.out" );
int N , M , i , j , v[17][17] , s=0;
fin>>N>>M;
if ( 1 <= N && M <= 16 ){
for ( i = 1 ; i <= N ; ++i )
{
for ( j = 1 ; j <= M ; ++ j )
fin>>v[i][j];
}
//Aflarea sumei min de pe linii
int sL = 0 , lin[17] , L=0;
for ( i = 1 ; i <= N ; ++i )
{
sL = 0;
for ( j = 1 ; j <= M ; ++j )
{
sL = sL + v[i][j];
}
if ( sL < 0 )
{
++L;
//Modificam numerele care au suma min
for ( j = 1 ; j <= M ; ++j )
{
lin[L]=i;
v[i][j] = -1 * v[i][j];//nu calculeaza urmatoarul rand neg
}
}
}
//Aflarea sumei min de pe coloana
int sc = 0 , col[17] , c=0;
for ( j = 1 ; j <= M ; ++j )
{
sc = 0;
for ( i = 1 ; i <= N ; ++i )
{
sc = sc + v[i][j];
}
if ( sc < 0 )
{
++c;
//Modificam numerele care au suma min
for ( i = 1 ; i <= N ; ++i )
{
col[c]=j;
v[i][j] = -1 * v[i][j];
}
}
}
int c1 , L1;
for ( c1 == 1 && L1 == 1 ; L1 <= L && c1 <= c ; ++L1 && ++c1 )
v[lin[L1]][col[c1]]*=-1;
for ( i = 1 ; i <= N ; ++i )
{
for( j = 1 ; j <= M ; ++j )
s = s + v[i][j];
}
fout<<s;
}
}