Cod sursa(job #881469)

Utilizator Daniel_BotBot Cristian Daniel Daniel_Bot Data 18 februarie 2013 00:45:05
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include<fstream>
using namespace std;

int const N=20;
int rowSum=-100001,interSum=0,maxSum=0;
int i,j,n,m;/*n stands for height and m for width */
int  matrix[N][N], switches[N];

void sum(int col)
{
    if(col==n+1)
    {
        interSum=0;
        for(i=0;i<m;i++)
        {
            rowSum=0;
            for(j=0;j<n;j++)
                rowSum+=(matrix[j][i]*switches[j]);
            if(rowSum>=0)
                interSum+=rowSum;
            else
                interSum+=-rowSum;
        }
        if(interSum>maxSum)
            maxSum=interSum;
        return;
    }
    else
    {
        switches[col]=1;
        sum(col+1);
        switches[col]=-1;
        sum(col+1);
    }
}

int main()
{
    ifstream in("flip.in");
    ofstream out("flip.out");
    in>>n>>m;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
            in>>matrix[i][j];
        switches[i]=1;
    }
    sum(1);
    out<<maxSum;
    in.close();
    out.close();
    return 0;
}