Problema 23 (OIS 2019 - 1° fase)

Buonasera
Sono uno studente e ho partecipato alla gara a squadre di quest’anno.
Tra i vari problemi proposti vi era il problema chiamato " 23 ". Io e la mia squadra avevamo dato una soluzione la quale tuttavia non funzionava per tutti i testcase: 2 testcase dell’ultimo subtask finivano per time-out.
Curioso di quale fosse la soluzione corretta ho chiesto alla mia insegnate la quale mi ha gentilmente fornito la soluzione ufficiale. Io per togliermi uno scrupolo ho provato la soluzione (senza effettuare alcuna modifica, l’ho provata così come è stata scritta) e mi sono accorto, con grande stupore, che non funziona pienamente; infatti anche la soluzione ufficiale va in time-out in 2 testcase dell’ultimo subtask.
Vorrei sapere, se possibile, la soluzione ufficiale pienamente funzionante del medesimo problema.
Poiché mi sembra ambiguo che abbiate proposto, alla gara delle olimpiadi a squadre, un problema cui neanche la soluzione ufficiale riesce a totalizzare tutti i 100 punti.

Salve, il server della gara è più performante di quello presente sulla piattaforma d’allenamento. Quella soluzione in gara avrebbe preso 100, come le altre soluzioni presenti in classifica.
Forse sarebbe opportuno alzare il tl ma vedendo che in molti lo hanno risolto, ci sono soluzioni più veloci che potresti provare a trovare.

Confermo che il server della gara e il server di allenamento sono molto diversi prestazionalmente. Però, come giusto che sia, ci assicuriamo prima di ogni gara che la nostra soluzione (o soluzioni!) prendano 100 punti, con anche un buon margine di tempo (quasi sempre almeno mezzo secondo!).
Questo invece è più difficile da garantire sul server degli allenamenti perché, vista la mole di problemi presente e il numero di utenti, i tempi tendono ad oscillare molto di più.

Nonostante ciò, grazie per la segnalazione, provo subito a vedere quanto tempo impiega al caso pessimo la nostra soluzione e a ritarare il tempo di conseguenza.

Update: effettivamente quella marcata come soluzione ufficiale sfora i 3 secondi, ma la seconda soluzione ufficiale riesce a rimanere sotto i 2s, pur avendo la stessa complessità. Direi quindi che è una questione di ottimizzazioni, lascio il TL invariato un po’ per lasciarvi una sfida in più da risolvere!

Scusate l’ignoranza, ma dove posso trovare le soluzioni ufficiali?

Non sono veramente “pubbliche”, però i referenti ne hanno accesso e puoi provare a chiedere al tuo se partecipi alle OIS.

Ciao, a titolo di parziale smentita di @edomora97, visto che sono state linkate dal sito “ufficiale” delle olimpiadi a squadre ormai le consideriamo praticamente pubbliche.

Uno dei modi più facili per accedervi è tramite le pagine Wiki che sto pian piano costruendo e provando a tenere aggiornate: https://wiki-olinfo.chiodini.org/Olimpiadi-a-Squadre-(OIS)

Un suggerimento importante (a nome di tutto lo staff): sappiamo che poter guardare le soluzioni può essere molto istruttivo e per questo le condividiamo, ma averle a disposizione facilmente può rivelarsi un’arma a doppio taglio. Anche se la tentazione di “dare una sbirciatina” è forte, prima di guardare le soluzioni è bene provare da soli e ragionare per un po’ sul problema.

3 Mi Piace