Pagini recente » Infoarena Monthly 2012 - Clasament | Cod sursa (job #1868245) | Cod sursa (job #3275188) | Cod sursa (job #2591509) | Cod sursa (job #781834)
Cod sursa(job #781834)
#include<fstream>
using namespace std;
int N,M,v[21905][21905],x,updown[1500005],leftright[1500005],updown2[1500005],leftright2[1500005],misca=1;
void citire()
{
ifstream fin("flip.in");
fin>>N>>M;
for(int i=1;i<=N;++i)
for(int j=1;j<=M;++j)
fin>>v[i][j];
fin.close();
}
void magic()
{
for(int i=1;i<=N;++i)
for(int j=1;j<=M;++j)
leftright[i]=leftright2[i]=updown[j]=updown2[j]=0;
for(int i=1;i<=N;++i)
for(int j=1;j<=M;++j)
{
leftright[i]+=v[i][j];
leftright2[i]-=v[i][j];
updown[j]+=v[i][j];
updown2[j]-=v[i][j];
}
for(int i=1;i<=N;++i)
for(int j=1;j<=M;++j)
{
misca=0;
if(leftright2[i]>leftright[i])
{
v[i][j]=-1*v[i][j];
misca++;
}
if(updown2[j]>updown[j])
{
v[i][j]=-1*v[i][j];
misca++;
}
}
}
void afisare()
{
ofstream fout("flip.out");
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
x+=v[i][j];
fout<<x;
fout.close();
}
int main()
{
citire();
while(misca)
magic();
afisare();
return 0;
}