Cod sursa(job #1728461)

Utilizator MihalachiRazvanMihalachi Razvan MihalachiRazvan Data 12 iulie 2016 23:01:15
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.55 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
long int n,m,a[17][17],s,sf,si,i,j,k,poz,minii,minic,maxi=0;
    int colmini()
{
    int minii=1000000;
    for(int j=1;j<=m;j++)
        {
            int s=0;
            for(int i=1;i<=n;i++)
                s=s+a[i][j];
            if(minii>=s)
            {minii=s;
             poz=j;}}
   return poz;
}
int linmini()
{
    int minii=1000000;
    for(int i=1;i<=n;i++)
        {
            int s=0;
            for(int j=1;j<=m;j++)
                s=s+a[i][j];
            if(minii>=s)
            {minii=s;
             poz=i;}}
        return poz;
       }
int main()
{
    f>>n>>m;
    s=0;
    si=0;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
          {f>>a[i][j];
          si=si+a[i][j];
          if(a[i][j]<0)
            s=s-a[i][j];
          else
            s=s+a[i][j];}
            sf=0;
            cout<<s<<"  "<<si<<endl;
            k=1;
       while(k!=n*m)
       {
             int l,c;
             l=linmini();
             c=colmini();
             for(i=1;i<=n;i++)
                a[i][c]=-a[i][c];
             for(j=1;j<=m;j++)
                 a[l][j]=-a[l][j];
             sf=0;
             for(i=1;i<=n;i++)
                for(j=1;j<=m;j++)
                sf=sf+a[i][j];
                if(maxi<sf)
                    maxi=sf;
                    k=k+1;
                }
             g<<maxi;;

            f.close();
            g.close();

    return 0;
}