Disk failure 1, problemi di tempo

Buongiorno, sto avendo difficoltà a far rimanere nei limiti di tempo il seguente algoritmo…
Dato che i numeri in “T” superano anche 10^8 il ciclo while fa tantissimi giri, un aiuto? grazie

CODICE:

A, B, T = map(int, input().strip().split())
min = T
for i in range(24):
    c = 0
    x = 0
    y = i
    while x < T:
        if y >= A and y < B:
            c+=1
        x+=1
        y+=1
        if y >= 24:
            y = A
            x += A
    if c < min: min = c
print(min)

Immagino il tuo approccio sia corretto ma è troppo inefficiente. Prova a pensare se quello che calcoli lo puoi trovare con un qualche tipo di formula visto che tutti i giorni si ripetono informazioni simili. Btw per essere espliciti c’è una formula che risolve tutto senza bisogno di cicli.

dove si possono trovare questi tipi di formule?

Beh qua la risposta è la trovi tu con carta e penna perché è una formuletta matematica. In generale più che “formule” può essere utile conoscere “algoritmi” per risolvere cose, e li puoi trovare spiegati online.
Comunque, qua puoi usare l’informazione che la gara sia tutti i giorni alla stessa ora e così al posto di fare dei cicli moltiplichi. Un’altra cosa che ti può interessare è capire a quale ora iniziare, ovviamente puoi farti il calcolo ipotizzando di partire a mezzanotte, poi a l’una, poi alle 2 ecc che tanto sono solo 24 ore possibile, ma facendoti degli esempi su carta noti per caso qualche cosa sull’ora di inizio migliore?

mi piace il modo in cui mi hai posto la cosa dandomi un indizio importante, grazie mille :slight_smile: cercherò di capire dove sta questa cosa che mi stava sfuggendo

1 Mi Piace

comunque ho capito il modo per trovare l’orario d’inizio, non ci avevo pensato, grazie. Tuttavia non riesco lo stesso a fare 100 punti, probabilmente è dovuto ad errori strani in passaggi a cui ho dato poca attenzione

1 Mi Piace

Grazie mille, mi hai dato proprio quello che cercavo, un indizio utile e che comunque non ti risolve il problema se non ci pensi un attimo su, adesso riesco ad arrivare al fatidico 100/100 e cosa più importante ora penserò a più soluzioni possibili e avrò più punti di vista sui problemi a venire.

1 Mi Piace

Ottimo! Se ti interessa ho anche un canale dove parlo tra varie cose anche di programmazione competitiva se ti va di darci un occhio :slight_smile: https://youtube.com/channel/UCeOmxzrah9E22Nw64FdJuVw

1 Mi Piace

ma sempre tu sei ahhahahha (conosco 3 delle tue identità ora), sono il caro con cui hai predictato police 5

1 Mi Piace

Ahh sei dynamicJova, si poteva intuire ahahah, 3 delle tante :wink::joy: comunque riguardo al messaggio di prima probabilmente avrai sbagliato la formula in qualche punto, per non parlare che mi sembra che i dati vadano anche messi a long long

1 Mi Piace

si lo farò sicuramente