Cod sursa(job #1934911)

Utilizator codyCodreanu Ionut cody Data 21 martie 2017 21:36:09
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.93 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int main() {
    int noOfColumns = 0, noOfLines = 0;
    ifstream inputFile;

    inputFile.open("filip.in", ifstream::in);
    if (!inputFile.is_open()) {
        cout << "Input file is not opened";
        return -1;
    }
    inputFile >> noOfLines >> noOfColumns;

    long int board[noOfLines][noOfColumns];
    long int lineSum[noOfLines], columnSum[noOfColumns];
    for (int lineIterator = 0; lineIterator < noOfLines; lineIterator++) {
        lineSum[lineIterator] = 0;
        for (int columnIterator = 0; columnIterator < noOfColumns; columnIterator++) {
            inputFile >> board[lineIterator][columnIterator];
            lineSum[lineIterator] += board[lineIterator][columnIterator];
            if (lineIterator == 0) {
                columnSum[columnIterator] = board[lineIterator][columnIterator];
            } else {
                columnSum[columnIterator] += board[lineIterator][columnIterator];
            }
        }
    }
    int lineIndexForMinValue = min_element(lineSum, lineSum + noOfLines) - lineSum;
    int columnIndexForMinValue = min_element(columnSum, columnSum + noOfColumns) - columnSum;

    for (int lineIterator = 0; lineIterator < noOfLines; lineIterator++) {
        board[lineIterator][columnIndexForMinValue] *= -1;
    }

    for (int columnIterator = 0; columnIterator < noOfColumns; columnIterator++) {
        board[lineIndexForMinValue][columnIterator] *= -1;
    }

    long sum = 0;
    for (int lineIterator = 0; lineIterator < noOfLines; lineIterator++) {
        for (int columnIterator = 0; columnIterator < noOfColumns; columnIterator++) {
            sum += board[lineIterator][columnIterator];
        }
    }

    ofstream outputFile;
    outputFile.open("filip.out", ofstream::out);
    if (!outputFile.is_open()) {
        cout << "Output file is not opened";
        return -1;
    }

    outputFile << sum;

    return 0;
}