Problema Montagne Russe

Ciao a tutti, qualche consiglio per risolvere il problema montagne russe? Devo aver tralasciato qualche caso “spinoso” e infatti mi segnala errore in alcuni casi del terzo e quarto subtask.

Hai considerato che i tratti orizzontali sono risalite inerziali?

1 Mi Piace

Sì, l’ho considerato. Infatti anche il caso d’esempio dove si presenta un tratto di quel tipo mi esce corretto.

Se può essere utile, copio qui una parte del programma:
ho considerato ogni pilone come una struct composta dall’altezza e dallo stato (caduta, inerzia, motorizzato)

qui definisco lo stato di ogni pilone

for(i=0;i<n;i++){
        in >> percorso[i].h;
        percorso[i].stato=INERZIA;
    }
    for(i=1;i<n;i++)
        if(percorso[i].h <percorso[i-1].h){
            percorso[i].stato=CADUTA;
            percorso[i-1].stato=CADUTA;
        }
    for(i=2;i<n;i++)
        if(percorso[i].h > percorso[i-1].h && percorso[i].h-percorso[i-1].h==percorso[i-1].h-percorso[i-2].h){
            percorso[i].stato=MOTORIZZATO;
            percorso[i-1].stato=MOTORIZZATO;
            percorso[i-2].stato=MOTORIZZATO;
        }
    if(percorso[1].stato==CADUTA)
        percorso[0].stato=CADUTA;

Mentre qui effettuo la simulazione del percorso:

if(percorso[0].stato==CADUTA)
        altezza=percorso[0].h;
    else
        altezza=-1;
    for(i=0;i<n;i++){
        if(i!=0)
            if(percorso[i].stato==CADUTA && percorso[i-1].stato!=CADUTA)
                altezza=percorso[i].h;
        if(percorso[i].stato==INERZIA && percorso[i].h >= altezza){
            break;
        }
    }
    if(i!=0)
        i--;
    out<<i;

i-- alla fine serve perché esco dal ciclo nel pilone dopo quello in cui si è fermato

Sono riuscito a risolverlo. Scrivo qui qual’era il mio problema nel caso serva a qualcuno:
l’effetto propulsivo che dopo una caduta libera consente la risalita inerziale si interrompe se salendo si incontra un tratto motorizzato. Questo significa che uscendo dal tratto motorizzato, se la salita continua il veicolo si ferma.

1 Mi Piace