Cod sursa(job #1825965)
Utilizator | Data | 9 decembrie 2016 21:54:36 | |
---|---|---|---|
Problema | Jocul Flip | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.12 kb |
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("flip.in"); ofstream g("flip.out");
int a[20][20],lin[20],n,m,s,mx,v[20],k,si,lin1[20];
void flip(int h)
{
s=0;
for(int i=1;i<=n;++i)
{
si=0;
lin[i]=lin1[i];
for(int j=1;j<=h;++j)
{
si+=(2*a[i][v[j]]);
}
s+=abs(lin[i]-si);
}
mx=max(mx,s);
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
f>>a[i][j];
lin1[i]+=a[i][j];
}
mx+=lin1[i];
}
for(int h=1;h<=m;++h)
{
for(int x=1;x<=20;++x)
{
v[x]=0;
}
k=1;
while(k>0)
{
if(v[k]<m)
{
++v[k];
if(k==h)
{
flip(h);
}
else
{
++k;
v[k]=v[k-1];
}
}
else --k;
}
}
g<<mx;
return 0;
}