Pagini recente » Cod sursa (job #213246) | Cod sursa (job #2593451) | Cod sursa (job #1191590) | Cod sursa (job #2069272) | Cod sursa (job #277213)
Cod sursa(job #277213)
#include <stdio.h>
//#include <iostream>
//#include <conio.h>
//using namespace std;
int m,n,i,j,v[100][100],poz,neg,sin,ok;
long long s;
//bool ok;
int suma()
{
s=0;
for(i=1;i<n+1;i++)
for(j=1;j<m+1;j++)
s+=v[i][j];
return s;
}
void citire()
{
FILE *pfile=fopen("flip.in","r");
fscanf(pfile, "%d %d", &n, &m);
for(i=1;i<n+1;i++)
for(j=1;j<m+1;j++)
fscanf(pfile, "%d ",&v[i][j]);
fclose(pfile);
}
void afisare()
{
FILE *pfileout=fopen("flip.out","w");
fprintf(pfileout, "%ld\n",s);
//for(i=1;i<n+1;i++)
//{
//for(j=1;j<m+1;j++)
//fprintf(pfileout, "%d ",v[i][j]);
//fprintf(pfileout, "\n");
//}
fclose(pfileout);
}
void comutare_coloana(int j)
{
for(i=1;i<n+1;i++)
v[i][j]*=(-1);
}
void comutare_rand(int i)
{
for(j=1;j<m+1;j++)
v[i][j]*=(-1);
}
void gg()
{
ok=0;
while(ok==0)
{
ok=1;
for(i=1;i<n+1;i++)
{
neg=0; poz=0;
for(j=1;j<m+1;j++)
{
if(v[i][j]<0) neg+=((-1)*v[i][j]);
else poz+=v[i][j];
}
if(neg>poz) { comutare_rand(i); ok=0; }
//cout<<neg<<" "<<poz<<"\n";
}
for(j=1;j<m+1;j++)
{
neg=0; poz=0;
for(i=1;i<n+1;i++)
{
if(v[i][j]<0) neg+=((-1)*v[i][j]);
else poz+=v[i][j];
}
if(neg>poz) { comutare_coloana(j); ok=0; }
}
}
}
int main()
{
citire();
sin=suma();
gg();
suma();
if (s<sin) s=sin;
afisare();
//getch();
return 0;
}