Pagini recente » Cod sursa (job #2918726) | Cod sursa (job #2673425) | Cod sursa (job #434216) | Cod sursa (job #1156506) | Cod sursa (job #51396)
Cod sursa(job #51396)
#include <iostream>
#include <fstream>
using namespace std;
long a[17][17];
int n,m;
long sumalin(int x)
{
long s;
int i;
s=0;
for (i=1; i<=m; i++)
s+=a[x][i];
return s;
}
long sumacol(int x)
{
long s;
int i;
s=0;
for (i=1; i<=n; i++)
s+=a[i][x];
return s;
}
int main()
{
//FILE *f1;
//f1=fopen("flip.in", "r");
ifstream f1("flip.in");
ofstream f2("flip.out");
int i, j;
unsigned long long s;
bool stop;
//fscanf(f1, "%d %d", &n, &m);
f1>>n>>m;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
f1>>a[i][j];
//fscanf(f1, "%d", &a[i][j]);
for (i=1; i<=n; i++)
{
a[i][0]=sumalin(i);
//f2<<a[i][0]<<" ";
}
//f2<<endl;
for (i=1; i<=m; i++)
{
a[0][i]=sumacol(i);
//f2<<a[0][i]<<" ";
}
//pana aici verificat :P
stop=false;
while (!stop) {
stop=true;
for (i=1; i<=n; i++)
if (a[i][0]<0) {
stop=false;
//f2<<a[i][0]<<" ";
a[i][0]*=-1;
//f2<<a[i][0]<<endl;
for (j=1; j<=m; j++) {
a[0][j]=a[0][j]-2*a[i][j];
a[i][j]*=-1; //linia asta poate fii scoasa
}
}
for (i=1; i<=m; i++)
if (a[0][i]<0) {
stop=false;
//f2<<a[0][i];
a[0][i]*=-1;
//f2<<a[0][i];
for (j=1; j<=n; j++) {
a[j][0]=a[j][0]-2*a[j][i];
a[j][i]*=-1;
}
}
}
/*
for (i=0; i<=n; i++) {
for (j=0; j<=m; j++)
f2<<a[i][j]<<" ";
f2<<endl;
}*/
s=0;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
s+=a[i][j];
f2<<s;
//fclose(f1);
f1.close();
f2.close();
return 0;
}