Mai intai trebuie sa te autentifici.
Cod sursa(job #2074491)
Utilizator | Data | 24 noiembrie 2017 17:38:08 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 40 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 1.17 kb |
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main()
{
int n,m,i,j,maxi=0,a[17][17];
long long c;
long long x;
FILE *f,*g;
f=fopen("flip.in","r");
g=fopen("flip.out","w");
fscanf (f,"%d",&n);
fscanf (f,"%d",&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
fscanf(f,"%d",&a[i][j]);
c=1;
x=1ll<<(n+m);
while(c<x)
{
int S=0;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{ //long long l=(c&(1ll<<(i-1)))>>(i-1);
//long long b=(c&(1ll<<(n+j-1)))>>(n+j-1);
long long r1,r2;
r1=c&(1ll<<(i-1));
r2=c&(1ll<<(j+n-1));
if(r1&&r2||r1==0&&r2==0)
S+=a[i][j];
else
S=S-a[i][j];
// S+=(((-2)*((l+b)%2))+1)*a[i][j];
// fprintf(g,"%d\n",S);
//fprintf(g,"%lld %lld\n",l,b);
}
//fprintf(g,"%lld\n",c);
c=c+1;
// fprintf(g,"%d\n",S);
if(S>maxi)
maxi=S;
}
fprintf(g,"%d",maxi);
return 0;
}