Cod sursa(job #520956)

Utilizator maritimCristian Lambru maritim Data 10 ianuarie 2011 21:28:18
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<iostream>
using namespace std;

int A[17][17];
int n;
int m;

void citire(void)
{
     FILE *f = fopen("flip.in","r");
     
     fscanf(f,"%d %d",&n,&m);
     for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
           fscanf(f,"%d",&A[i][j]);
     
     fclose(f);
}

void schimbare(int lc, int stare)
{
     if(stare == 1)
       for(int i = 1;i<=m;i++)
          A[lc][i] *= -1;
     else
       for(int i=1;i<=n;i++)
          A[i][lc] *= -1;
}

void selectare(void)
{
     int suma;
     for(int i=1;i<=n;i++)
     {
        suma = 0;
        for(int j=1;j<=m;j++)
           suma += A[i][j];
        if(suma<0) schimbare(i,1);
     }
     for(int i=1;i<=m;i++)
     {
        suma = 0;
        for(int j=1;j<=n;j++)
           suma += A[j][i];
        if(suma<0) schimbare(i,2);
     }
}       

int sumam(void)
{
     int suma = 0;
     for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
           suma += A[i][j];
     return suma;
}

int main()
{
    FILE *f = fopen("flip.out","w");
    
    citire();
    selectare();
    fprintf(f,"%d",sumam());
    
    fclose(f);
    return 0;
}