// Cristian Ronzoni 3Ain
/* Funzione che in una matrice
   trova la riga o la colonna con somma pių alta */
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#define NUM 7
using namespace std;

// Dichiarazione delle funzioni
void riempi(int arr[NUM][NUM]);
void stampa(int arr[NUM][NUM]);
void sommaRigaColonna(int arr[NUM][NUM]);

int main(void) {
    int bobby[NUM][NUM];

    srand(time(0)); // Inizializza il generatore di numeri casuali
    riempi(bobby);  // Riempie la matrice con numeri casuali
    stampa(bobby);  // Stampa la matrice
    sommaRigaColonna(bobby); // Trova la riga e la colonna con la somma pių alta

    return 0;
}

// Funzione per riempire la matrice con numeri casuali
void riempi(int arr[NUM][NUM]) {
    for (size_t i = 0; i < NUM; ++i) {
        for (size_t j = 0; j < NUM; ++j) {
            arr[i][j] = rand() % 50; // Numeri casuali tra 0 e 49
        }
    }
}

// Funzione per stampare la matrice
void stampa(int arr[NUM][NUM]) {
    cout << "Matrice generata:\n";
    for (size_t i = 0; i < NUM; ++i) {
        for (size_t j = 0; j < NUM; ++j) {
            cout << setw(3) << arr[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
}

// Funzione per trovare la riga e la colonna con somma pių alta
void sommaRigaColonna(int arr[NUM][NUM]) {
    int maxSommaRiga = 0, maxSommaColonna = 0;
    int rigaMax = -1, colonnaMax = -1;

    // Calcolo della somma delle righe
    for (size_t i = 0; i < NUM; ++i) {
        int sommaRiga = 0;
        for (size_t j = 0; j < NUM; ++j) {
            sommaRiga += arr[i][j];
        }
        if (sommaRiga > maxSommaRiga) {
            maxSommaRiga = sommaRiga;
            rigaMax = i;
        }
    }

    // Calcolo della somma delle colonne
    for (size_t j = 0; j < NUM; ++j) {
        int sommaColonna = 0;
        for (size_t i = 0; i < NUM; ++i) {
            sommaColonna += arr[i][j];
        }
        if (sommaColonna > maxSommaColonna) {
            maxSommaColonna = sommaColonna;
            colonnaMax = j;
        }
    }

    // Stampa dei risultati
    cout << "La riga con somma pių alta č la riga " << rigaMax + 1
         << " con somma: " << maxSommaRiga << endl;
    cout << "La colonna con somma pių alta č la colonna " << colonnaMax + 1
         << " con somma: " << maxSommaColonna << endl;
}

