Cod sursa(job #1443402)

Utilizator mihailacusteanuMihai Lacusteanu mihailacusteanu Data 27 mai 2015 21:13:28
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
#include<iostream>
#include<fstream>
using namespace std;
int suma(int n,int m,int a[][16]){
int Spoz=0,i,j;
for(i=0;i<n;i++){
    for(j=0;j<m;j++){
        Spoz+=a[i][j];
    }

}
return Spoz;
}



void afisare(int n,int m, int a[][16]){
    int i,j;
for(i=0;i<n;i++){
    for(j=0;j<m;j++){
       cout<<a[i][j]<<" ";
    }
cout<<endl;
}
}


void citire_matrice(int &n,int &m, int a[][16]){
ifstream fisier ("flip.in");
int i,j;
fisier>>n;
fisier>>m;

for(i=0;i<n;i++){
    for(j=0;j<m;j++){
        fisier>>a[i][j];

    }

        }
fisier.close();
//afisare(n,m,a);
}



int flip(int n,int m,int a[][16]){

    int Sneg=0,Spoz=0,ok,i,j;

ok=0;


for(i=0;i<n;i++){
Sneg=0;
        Spoz=0;
    for(j=0;j<m;j++){

      if(a[i][j]>0)
        Spoz+=a[i][j];
       else
        Sneg+=a[i][j];

    }


    if((-1)*Sneg>Spoz)
        for(j=0;j<m;j++){
            a[i][j]*=-1;
        }

}


for(j=0;j<m;j++){
        Sneg=0;
        Spoz=0;
    for(i=0;i<n;i++){
      if(a[i][j]>0)
        Spoz+=a[i][j];
       else
        Sneg+=a[i][j];
    }
   if((-1)*Sneg>Spoz){
        for(i=0;i<n;i++){
            a[i][j]*=-1;
        }
        ok=1;
    }
}
if(ok==1)
    flip(n,m,a);

}


int main(){
    int m,n,i,j;
int a[16][16];
citire_matrice(n,m,a);


flip(n,m,a);




ofstream fisier2 ("flip.out");
fisier2<<suma(n,m,a);
fisier2.close();
}