Pagini recente » Cod sursa (job #1876125) | Cod sursa (job #1091255) | Cod sursa (job #1532594) | Cod sursa (job #2879603) | Cod sursa (job #51394)
Cod sursa(job #51394)
#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");
ofstream f2("flip.out");
int i, j;
unsigned long long s;
bool stop;
fscanf(f1, "%d %d", &n, &m);
for (i=1; i<=n; i++)
for (j=1; j<=m; 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[i][j]*=-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);
f2.close();
return 0;
}