Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Velocizzare Algoritmo

L
Lolloxox31 (1610 points)
14 16 26
in Programmare in Python by (1.6k points)
Salve buongiorno il mio programma supera tutti i test tranne l'esempio 5

perché va in timeout per circa 2/3 decimi di secondo....penso di aver "azzeccato" l'algoritmo

ma evidentemente ho nel ciclo for ho delle cose che rallentano troppo il programma

Avreste dei consigli utili in merito?

Grazie mille in Anticipo

3 Answers

AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
edited by
Se effettivamente stai utilizzando uno degli approcci "migliori" per risolvere il problema ma comunque ti va in Timeout l'esempio5 ragiona sul fatto che dipende tutto dal numero di scambi che effettui durante un sorpasso in quanto ne vengono effettuati 1.125.000 circa.

Io per esempio dopo un po' che pensavo di aver trovato la soluzione migliore ma che comunque mi andava in timeout su quel test, ho realizzato che due degli scambi che facevo potevano benissimo essere riscritti come uno scambio solo e quindi impiegare la metà del tempo.
L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Ok grazie !!
E
Edward (25950 points)
3 4 172
by (26.0k points)

Dai un'occhiata qui e qui.

L
Lolloxox31 (1610 points)
14 16 26
by (1.6k points)
Ok grazie !!
plm (18850 points)
13 15 118
by (18.9k points)
Cerca di dividere in tuo algoritmo in macro-blocchi e di vedere tutti i comandi che dai e capire quali siano ridondanti o magari quali possono essere riscritti in maniera da poter impiegare meno tempo. Poniti delle domande come: "Questo if mi serve veramente? Posso scriverlo in maniera diversa? Questi due for li posso scrivere come uno solo? Etc..