7 Segments


Submit solution

Points: 5 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem types
Extraccio de Digits, Matemàtiques, Strings
Category
Codejam
Allowed languages
Bash, C Hashtag, C++, Haskell, Java, Kotlin, PHP, Python

Es vol saber la despesa energètica corresponent a un rellotge que mostra l'hora fent servir displays 7 segments, de tal manera que cada dígit està representat segons el següent esquema:

aireacondicionat

Encendre un segment durant un minut requereix 15 miliampers. El temps es representa en format hh:mm.

Encendre durant un minut cada doble puntet de la separació entre hores i minuts costa 10 miliampers. El rellotge representa el temps en format 00:00 fins a 23:59 Es tracta de saber el cost en miliampers que te deixar encès el rellotge durant un interval de temps.

Entrada

L’entrada és una successió de casos de prova.

Cada cas de prova consisteix en un parell de valors. El primer correspon a l 'instant de temps, en format hh:mm i el segon al número de minuts que es vol controlar.

Els casos de prova acaben quan es detecta l'entrada 99:99 0

Sortida

La solució de cada cas de prova es mostrarà en una línia. Per cada cas de prova el programa indicarà cost en miliampers que representa tenir el rellotge encès des de l'instant inicial fins que transcorrin els minuts indicats al segon valor.

Pel cas de prova final 99:99 0 no cal fer cap sortida

Exemple d'Entrada

00:00 0
00:00 1
00:00 2
11:11 60
23:59 0
23:59 1
99:99 0

Exemple de Sortida

370
680
1035
13330
325
695

Comments


  • 1
    administrador  commented on Sept. 29, 2023, 3:06 p.m. edited

    Gotchas

    Puntets

    Encendre durant un minut cada puntet de la separació entre hores i minuts costa 10 miliampers.

    Aquí s'implica que encendre'ls tots dos en costa 20. Tanmateix, això no sembla ser així a la pràctica. Només calen 10 mil·liampers per minut, per tots dos punts.

    Minuts off-by-one

    [...] i el segon al número de minuts que es vol controlar.

    Per la raó que sigui el temps ve restat per 1. Si es mesurés el consum durant 0 minuts, caldrien 0 *ampers. Similarment, si es mesurés durant 1 minut, caldrien, bé, els que caldria en un minut, no el doble. No oblideu afegir 1 als minuts per compensar.

    Línies en blanc

    No us deixeu emportar per una falsa sensació de seguretat que "99:99 0" es pot senzillament ignorar, i processar el resto de casos línia per línia. Un dels test cases acaba amb una línia buida i l'altre no. Assegureu-vos que el vostre parser pot menjar-se línies invàlides, filtrant senzillament les que són vàlides fins a EOF. He perdut molts intents per això.