Cod sursa(job #2427296)
Utilizator | Data | 31 mai 2019 15:36:09 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 40 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.89 kb |
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int S=0,n,m,a[17][17],nr,c,z;
int inmulteste()
{
if(c=='c')
{
for(int i=1;i<=n;i++)
{
a[i][nr]*=-1;
z+=2*a[i][nr];
}
}
else
if(c=='l')
{
for(int i=1;i<=m;i++)
{
a[nr][i]*=-1;
z+=2*a[nr][i];
}
}
return 0;
}
int main()
{
int stiva[40],M=0,i;
f>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
f>>a[i][j];
S+=a[i][j];
}
}
for(i=1;i<=n+m;i++)
stiva[i]=-1;
int k=1;
while(k>=1)
{
stiva[k]++;
if(stiva[k]<=1)
{
if(k==n+m)
{
z=S;
for(i=1;i<=n;i++)
if(stiva[i]==1)
{
nr=i;
c='l';
inmulteste();
}
for(i=n+1;i<=n+m;i++)
if(stiva[i]==1)
{
nr=i-n;
c='c';
inmulteste();
}
if(z>M)
M=z;
for(i=1;i<=n;i++)
if(stiva[i]==1)
{
nr=i;
c='l';
inmulteste();
}
for(i=n+1;i<=n+m;i++)
if(stiva[i]==1)
if(stiva[i]==1)
{
nr=i-n;
c='c';
inmulteste();
}
}
else
k++;
}
else
{
stiva[k]=-1;
k--;
}
}
g<<M;
}