# Sushi variegato

**URL:** <https://forum.olinfo.it/t/sushi-variegato/5780>\
**Category:** Aiuto\
**Created:** [14 Luglio 2019, 9:32am UTC](https://forum.olinfo.it/t/sushi-variegato/5780 "2019-07-14T09:32:49Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![gios](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/g/ec9cab/32.png) [@gios](https://forum.olinfo.it/u/gios)\
**Post date:** [14 Luglio 2019, 9:32am UTC](https://forum.olinfo.it/t/sushi-variegato/5780/1 "2019-07-14T09:32:50Z")

</div>

ho scritto un programma per risolvere suschi variegato.  
([testo](https://training.olinfo.it/#/task/preoii_yutaka/statement))  
credo che il problema sia un errore di mancata comprensione da parte mia del problema.da quello che ho capito dal testo bisogna contare il numero di pezzi di suschi diversi metterli nella formula 2^(n-1) dove n è il numero di suchi consecutivi diversi e moltiplicarli tra loro per avere tutte le varie possibilità.

```auto
    #include <vector>
    #include <complex>
    #include <math.h>

    using namespace std;

    int taglia(int N, int V[]) {
        vector<int> arr;
        int time = 0;
        for (int i = 1; i < N; ++i) {
            if (V[i - 1] == V[i]) {
                if (time > 0)
                    arr.push_back(time);
                time = 0;
            } else {
                time += 1;
            }
        }
        if (time > 0)
                arr.push_back(time);
        unsigned long last = 1;
        for (int i = 0; i < arr.size(); ++i) {
            last *= powl(2, arr[i]);
        }
        return last % 1000000007;
    }

```

---

<div class="post-metadata">

**Author:** ![touristuni](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/t/9de0a6/32.png) [@touristuni](https://forum.olinfo.it/u/touristuni)\
**Post date:** [14 Luglio 2019, 10:11pm UTC](https://forum.olinfo.it/t/sushi-variegato/5780/2 "2019-07-14T22:11:54Z")

</div>

Ciao, nella tua soluzione non consideri un caso particolare:

```auto
3
1 2 1

```

Le possibili soluzione sono:

- \fbox{1 2 | 1}
- \fbox{1 | 2 1}
- \fbox{1 | 2 | 1}

e quindi la risposta è 3, mentre il tuo programma stampa 4.

> **Un piccolo indizio**
>
> Si scrive “sushi” [🤦‍♂️](https://www.medicinalive.com/scienza-dellalimentazione/alimentazione-e-prevenzione/6-benefici-consumo-sushi/)

---

<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:** [15 Luglio 2019, 7:39am UTC](https://forum.olinfo.it/t/sushi-variegato/5780/3 "2019-07-15T07:39:30Z")

</div>

In ogni caso ricordarti di applicare il modulo ad ogni passaggio e non solo alla fine, altrimenti perde il suo scopo.
