# Subset (Number Game) : 70/100

**URL:** <https://forum.olinfo.it/t/subset-number-game-70-100/4924>\
**Category:** Aiuto\
**Created:** [9 Dicembre 2017, 12:38pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924 "2017-12-09T12:38:12Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Space995](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/s/d2c977/32.png) [@Space995](https://forum.olinfo.it/u/Space995)\
**Post date:** [9 Dicembre 2017, 12:38pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924/1 "2017-12-09T12:38:12Z")

</div>

Il mio codice sbaglia l’output dei casi 3, 5 e 9 ma non capisco dove sia il problema.

Gradirei un piccolo indizio (magari un input particolare che il mio codice sbaglia) per poter poi capire autonomamente cosa non va bene.

Ecco il codice: [https://hastebin.com/oqocibifok.cpp](https://hastebin.com/oqocibifok.cpp)

Grazie della disponibilità.

---

<div class="post-metadata">

**Author:** ![frakkiobello](https://forum.olinfo.it/user_avatar/forum.olinfo.it/frakkiobello/32/2768_2.png) [@frakkiobello](https://forum.olinfo.it/u/frakkiobello)\
**Post date:** [9 Dicembre 2017, 1:29pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924/2 "2017-12-09T13:29:04Z")

</div>

Riusciresti a spiegare cosa fa il tuo algoritmo?

---

<div class="post-metadata">

**Author:** ![Space995](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/s/d2c977/32.png) [@Space995](https://forum.olinfo.it/u/Space995)\
**Post date:** [9 Dicembre 2017, 2:11pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924/3 "2017-12-09T14:11:33Z")

</div>

Controlla se la condizione fra ciascun elemento V[i] (i va da 0 a N-2) e V[j] (j va da i + 1 a N - 1)  
**NON** è verificata. Quando questo accade, significa che almeno 1 dei 2 numeri va eliminato perchè se rimanessero insieme la condizione di validità del subset non sarebbe valida (la condizione è che nel subset risultante S: (S[i] % S[j] == 0 || S[j] % S[i] == 0). Perciò diminuisce la cardinalità massima e decide quale dei due numeri eliminare, contando con quanti numeri del subset può coesistere V[i] e con quanti può coesistere V[j]. A questo punto elimina quello con il numero minore di elementi compatibili e il procedimento ricomincia. Spero sia comprensibile.

---

<div class="post-metadata">

**Author:** ![simpatine](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simpatine/32/444_2.png) [@simpatine](https://forum.olinfo.it/u/simpatine)\
**Post date:** [9 Dicembre 2017, 3:32pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924/4 "2017-12-09T15:32:31Z")

</div>

Ho trovato un input per il quale sbaglia, infatti con il vettore V[8]={2,14,10,22,34,3,9,27}, invece di dare in output 3,dato dal sottoinsieme {3,9,27}, da 2, il problema si presenta quando confronta 2 e 3: 2 è divisore di 2,14,10,22,34(quindi i\_pairs=5), 3 solo di 3,9,27 (quindi i\_pairs=3), il programma eliminerà pertanto 3 pur non dovendolo fare, dato che tra 14,10,22,34 nessuno divide un altro, mentre 9 divide 27.

---

<div class="post-metadata">

**Author:** ![Space995](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/s/d2c977/32.png) [@Space995](https://forum.olinfo.it/u/Space995)\
**Post date:** [9 Dicembre 2017, 3:51pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924/5 "2017-12-09T15:51:38Z")

</div>

Grazie ora vedo come risolvere 😉

---

<div class="post-metadata">

**Author:** ![wil93](https://forum.olinfo.it/user_avatar/forum.olinfo.it/wil93/32/2862_2.png) [@wil93](https://forum.olinfo.it/u/wil93)\
**Post date:** [1 Giugno 2018, 2:01pm UTC](https://forum.olinfo.it/t/subset-number-game-70-100/4924/6 "2018-06-01T14:01:55Z")

</div>

Un messaggio è stato spostato in un nuovo argomento: [Assunzione su task “subset”](https://forum.olinfo.it/t/assunzione-su-task-subset/5233)
