Cod sursa(job #2312853)

Utilizator WipeBurcea Ionut Wipe Data 5 ianuarie 2019 16:59:54
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.65 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");

int main()
{
    int N, M, matrice[17][17], numereNegativeColoane, copieColoana=0, maximAux=0, auxFinal=0, copieLinie=0, sumaTotala=0, minimLinieStanga, minimLinieDreapta;
    f>>N>>M;
    for(int i=1;i<=N;i++)
        for(int j=1;j<=M;j++)
            f>>matrice[i][j];
    for(int j=1;j<=M;j++){
        numereNegativeColoane=0;
        for(int i=1;i<=N;i++)
            if(matrice[i][j]<0)
                numereNegativeColoane++;
        auxFinal=numereNegativeColoane;
        if(auxFinal>maximAux){
            maximAux=auxFinal;
            copieColoana=j;
        }
    }
    minimLinieStanga=matrice[copieColoana-1][copieColoana];
    minimLinieDreapta=matrice[copieColoana+1][copieColoana];
    for(int k=copieColoana;k<=copieColoana;k++)
        for(int i=copieColoana-1;i<=copieColoana-1;i++)
            if(matrice[i][k-1]<minimLinieStanga){
                minimLinieStanga=matrice[i][k];
                copieLinie=i;
            }
    for(int k=copieColoana;k<=copieColoana;k++)
        for(int j=copieColoana+1;j<=copieColoana+1;j++)
            if(matrice[j][k+1]<minimLinieDreapta){
                minimLinieDreapta=matrice[j][k];
                copieLinie=j;
            }
    for(int i=1;i<=N;i++)
        for(int j=1;j<=M;j++){
            if(j==copieColoana)
                matrice[i][j]*=-1;
            if(i==copieLinie)
                matrice[i][j]*=-1;
        }
    for(int i=1;i<=N;i++)
        for(int j=1;j<=M;j++)
            sumaTotala+=matrice[i][j];
    g<<sumaTotala;
    return 0;
}