Perfect Pizza Aiuto ragionamento

DI recente stavo provando a risolvere il problema Perfect Pizza. Non capisco cosa non vada, sbaglio per caso il ragionamento? Allego il mio codice, anche perchè il problema mi era sembrato abbastanza semplice.

#include<iostream>

using namespace std;

int main(){

    freopen("input.txt", "r", stdin);

    freopen("output.txt", "w", stdout);

    long long N, M;

    cin >> N >> M;

    double soluzioni[M], ingredienti[M][N];

    for(int i = 0; i < M; i++){

        soluzioni[i] = 0;

        for(int j = 0; j < N; j++){

            cin >> ingredienti[i][j];

            soluzioni[i] += ingredienti[i][j];  

        }

    }

    double fattoredividente[M];

    for(int i = 0; i < M; i++){

        fattoredividente[i] = 1000000 / soluzioni[i];

        for(int j = 0; j < N; j++){

            ingredienti[i][j] *= fattoredividente[i];

        }

    }

    double soluzionefinale[N];

    double somma = 0;

   

    for(int i = 0; i < N; i++){

        somma = 0;

        for(int j = 0; j < M; j++){

            somma += ingredienti[j][i];

        }

        soluzionefinale[i] = somma / M;

        cout << soluzionefinale[i] << " ";

    }

       

}
✍ The averaged weights might not be integer values. Use variables of double type
(C/C++/Pascal) to compute intermediate results. Then, truncate the final result r to an
integer number of milligrams through (int)r (C/C++) or trunc(r) (Pascal).

Penso che dovresti seguire alla lettera la nota riportata nel task.