Cod sursa(job #1357098)

Utilizator VaginaSlayerAndrei Oprea VaginaSlayer Data 23 februarie 2015 19:27:33
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[20][20],n,m;
void citire()
{ifstream f("flip.in");
f>>n;f>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
f>>a[i][j];
f.close();
}

void afis()
{for(int i=1;i<=n;i++)
{for(int j=1;j<=m;j++)
cout<<a[i][j];
cout<<endl;}
}

short check_line(int i)
{int ok=0;
for(int j=1;j<=m;j++)
ok=ok+a[i][j];
if(ok<0)
return 1;
return 0;}

short check_col(int j)
{int ok=0;
for(int i=1;i<=n;i++)
ok=ok+a[i][j];
if(ok<0)
return 1;
return 0;}

int check_flip()
{for(int i=1;i<=n;i++)
{if(check_line(i))
{for(int j=1;j<=m;j++)
a[i][j]=-1*a[i][j];
return 1;
}}
for(int j=1;j<=m;j++)
{if(check_col(j))
{for(int i=1;i<=n;i++)
a[i][j]=-1*a[i][j];
return 1;
}}
return 0;
}



void data_out()
{ofstream g("flip.out");
int suma=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
suma=suma+a[i][j];
g<<suma;
g.close();
}


int main()
{citire();
//afis();
while(true)
{if(!check_flip())
break;}
data_out();
return 0;
}