Mai intai trebuie sa te autentifici.
Cod sursa(job #164077)
Utilizator | Data | 23 martie 2008 15:13:28 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.97 kb |
#include<fstream.h>
int n, m, l[17], c[17], v[33];
unsigned long a[17][17];
void citire()
{
int i, j;
ifstream fin("flip.in");
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fin>>a[i][j];
}
int suma()
{
int i, j, s=0;
for(i=1;i<=n;i++)
{
l[i]=0;
for(j=1;j<=m;j++)
l[i]=l[i]+a[i][j];
}
for(i=1;i<=m;i++)
{
c[i]=0;
for(j=1;j<=n;j++)
c[i]=c[i]+a[j][i];
}
for(i=1;i<=n;i++)
s=s+l[i];
return s;
}
int main()
{
int p=1, s, max=0, ss, i;
citire();
ss=suma();
ofstream fout("flip.out");
while(p)
{
p=0;
for(i=n+m;i>=1;i--)
if(v[i]==0)
{
v[i]=1;
p=i;
break;
}
for(i=p+1;i<=n+m;i++)
v[i]=0;
s=ss;
for(i=1;i<=n;i++)
if(v[i]==1)
s=s-2*l[i];
for(i=n+1;i<=n+m;i++)
if(v[i]==1)
s=s-2*c[i-n];
if(s>max)
max=s;
}
fout<<max<<endl;
return 0;
}