Ciao a tutti, ho bisogno di aiuto per risolvere il problema Dividi i piatti.
Ho provato a creare un programma Greedy: inizialmente ordina il vettore in modo decrescente, e poi inizia a dare i valori alla parte che ne ha meno, ma questo non funziona nel substack 3 e 4.
Ecco il mio codice:
int dividi(int N, vector<int> V) {
sort(V.begin(), V.end());
reverse(V.begin(), V.end());
int somma = 0;
for (int val:V){
if (somma >= 0) somma -= val;
else somma += val;
}
return abs(somma);
}
Credo che il mio sia un errore di logica ma non capivo dove era sbagliato.
Quindi volevo chiedere se era solubile con il greedy, o era neccesario usare il DP
Grazie mille in anticipo!