Pagini recente » Cod sursa (job #1987735) | Cod sursa (job #3133916) | Cod sursa (job #550965) | Cod sursa (job #1845911) | Cod sursa (job #849799)
Cod sursa(job #849799)
#include<fstream>
#include<vector>
#include<iostream>
using namespace std;
vector<vector<long> > table;
long flip_and_sum(vector<char> bit_map,int n,int m)
{
int i ,j;
long s = 0,csum;
vector<vector<long> > ctable = table;
for(j=0;j<m;++j)
{
csum = 0;
for(i=0;i<n;i++)
csum+=(bit_map[i])?-ctable[i][j]:ctable[i][j];
if(csum<0)
csum*=-1;
s+=csum;
}
return s;
}
int main()
{
int n,m,i,j,k = 0,as,ev;
long max_sum = 0,temp;
ifstream fin("flip.in");
fin>>n>>m;
table.resize(n,vector<long>(m,0));
vector<char> st(n);
for(i=0;i<n;++i)
for(j=0;j<m;++j)
fin>>table[i][j];
fin.close();
st[k]=-1;
while(k>-1)
{
if(st[k]==-1){
st[k]=0;as = 1;ev = 1;
}
else if(st[k]==0)
{
st[k]=1;as = 1;ev = 1;
}
else if (st[k]==1)as = 0;
if (as)
if(k+1 == n ){
temp = flip_and_sum(st,n,m);
if(temp>max_sum)
max_sum = temp;
}
else{st[++k]=-1;}
else k--;
}
ofstream g("flip.out");
g<<max_sum;
g.close();
return 0;
}