Cod sursa(job #1756347)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 12 septembrie 2016 17:47:53
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,m;
long int i,j,a[17][17],minc,minl,pozi,pozc,s,maxim=0;
long int sumal(long int i,long int j)
{
    if(j>m)
        return 0;
    else
        return a[i][j]+sumal(i,j+1);
}
long int sumac(long int i,long int j)
{
    if(i>n)
        return 0;
        else
            return a[i][j]+sumac(i+1,j);
}
long int sumanrneg()
{
    long int sneg=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        if(a[i][j]<0)
        sneg=sneg+a[i][j];
        return sneg;
}
int main()
{
    int sw=1;
    minc=1000000;
    minl=minc;
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        f>>a[i][j];
         while(sw!=100)
         {
            for(i=1;i<=n;i++)
                if(minl>sumal(i,1))
            {
                minl=sumal(i,1);
                pozi=i;
            }
                for(j=1;j<=m;j++)
                    if(minc>sumac(1,j))
                {
                    minc=sumac(1,j);
                    pozc=j;
                }
                if(minc<minl)
                {
                    for(i=1;i<=n;i++)
                            a[i][pozc]=-a[i][pozc];
                }
                else
                {
                    for(j=1;j<=m;j++)
                        a[pozi][j]=-a[pozi][j];
                }
                 s=0;
                  minc=1000000;
                 minl=minc;
             for(j=1;j<=m;j++)
                        s=s+sumac(1,j);
                if(maxim<s)
                    maxim=s;
                    sw++;}
         g<<maxim;
            f.close();
            g.close();

    return 0;
}