introduzione
Sei il direttore del dipartimento di elettronica in un grande negozio al dettaglio e il più grande giorno di vendita dell'anno è questo venerdì . Per aiutare a gestire la folla, il tuo negozio sta implementando un sistema di biglietti per le offerte più importanti, in cui i clienti devono presentare un biglietto prima di acquistare un articolo. Il tuo compito è scrivere un programma per convalidare i biglietti.
Poiché l'unico computer disponibile nel negozio (a causa di tagli di bilancio) è un dinosauro con una tastiera rotta, (e tutto ciò che hai sono tastiere USB, che non sono compatibili) dovrai inserire il tuo programma con un mouse. Pertanto, il programma dovrebbe essere il più breve possibile.
Prodotti
Il tuo negozio sta eseguendo vendite sui cinque diversi prodotti elencati di seguito. Ogni prodotto ha un nome tutto minuscolo e regole diverse su quanti possono essere acquistati e in quale momento della giornata.
television: Ci sono5televisori a schermo piatto in stock che possono essere acquistati da00:00:00(mezzanotte) a00:59:59.smartphone: Ci sono10smartphone disponibili, ma tutti i clienti in fila da00:00:00(mezzanotte)00:59:59ricevono un buono per uno una volta esaurito.tablet: Ci sono10tablet che possono essere acquistati in qualsiasi momento.laptop: Esiste un numero illimitato di laptop che possono essere acquistati da00:00:00(mezzanotte) a07:59:59.lightbulb: Esiste un numero illimitato di lampadine che possono essere acquistate in qualsiasi momento.
Ingresso
Una stringa multilinea con ogni riga nel seguente formato. Le linee sono ordinate in base al timestamp.
<time stamp> <product name> <ticket number>
- Il numero del biglietto è lungo 8 cifre. L'ultima cifra è una cifra di controllo pari alla somma delle prime sette cifre modulo 10. Per essere valido, un numero di biglietto deve avere la cifra di controllo corretta e deve essere rigorosamente maggiore di tutti i precedenti numeri di biglietto.
- Il nome del prodotto è una delle stringhe sopra elencate.
- Il timestamp è l'ora del giorno nel formato in
HH:MM:SScuiHHè l'ora a due cifre da 00-23,MMeSSsono rispettivamente i minuti e i secondi a due cifre.
Produzione
L'output è una delle seguenti stringhe, con una riga per ticket. Le condizioni devono essere applicate in ordine .
Expired offer(Si applica a televisori, smartphone e laptop.) Il timestamp del biglietto è dopo il taglio per acquistare il prodotto.Invalid ticketIl numero del biglietto è inferiore o uguale al numero del biglietto precedente oppure la cifra di controllo non è valida.Give voucher(Si applica agli smartphone.) Il prodotto è esaurito, ma tutti i clienti in linea prima della scadenza dell'offerta ricevono un controllo della pioggia.Out of stock(Vale per televisori e tablet.) Tutto il prodotto è stato venduto. Spiacenti, la quantità era limitata.AcceptedTutte le condizioni sono soddisfatte, quindi dai loro il prodotto. Nota che solo i biglietti accettati riducono il numero di articoli in magazzino.
Esempio
Input Output
---------------------------- --------------
00:00:00 television 00010001 Accepted
00:00:25 smartphone 00011697 Accepted
00:01:25 laptop 00030238 Accepted
00:02:11 smartphone 00037291 Accepted
00:02:37 lightbulb 00073469 Invalid ticket
00:03:54 smartphone 00096319 Accepted
00:05:26 tablet 00152514 Accepted
00:06:21 tablet 00169893 Accepted
00:07:10 television 00190268 Accepted
00:07:47 smartphone 00194486 Accepted
00:07:55 tablet 00220071 Accepted
00:08:20 lightbulb 00321332 Accepted
00:10:01 smartphone 00409867 Accepted
00:11:10 tablet 00394210 Invalid ticket
00:11:46 television 00581060 Accepted
00:12:44 lightbulb 00606327 Accepted
00:13:16 tablet 00709253 Accepted
00:13:53 television 00801874 Accepted
00:14:47 laptop 00832058 Accepted
00:15:34 smartphone 00963682 Accepted
00:16:24 smartphone 01050275 Accepted
00:17:45 tablet 01117167 Accepted
00:18:05 laptop 01107548 Invalid ticket
00:19:00 lightbulb 01107605 Invalid ticket
00:19:47 lightbulb 01492983 Accepted
00:19:50 smartphone 01561609 Accepted
00:21:09 television 01567098 Accepted
00:21:42 laptop 01597046 Accepted
00:22:17 smartphone 01666313 Accepted
00:24:12 tablet 01924859 Accepted
00:24:12 smartphone 02151571 Accepted
00:25:38 smartphone 02428286 Give voucher
00:31:58 television 02435284 Out of stock
00:35:25 television 02435295 Out of stock
00:52:43 laptop 02657911 Invalid ticket
00:53:55 smartphone 02695990 Give voucher
01:08:19 tablet 02767103 Accepted
01:34:03 television 02834850 Expired offer
01:56:46 laptop 02896263 Accepted
02:02:41 smartphone 03028788 Expired offer
02:30:59 television 03142550 Expired offer
02:51:23 tablet 03428805 Accepted
03:14:57 smartphone 03602315 Expired offer
03:27:12 television 03739585 Expired offer
03:56:52 smartphone 03997615 Expired offer
04:07:52 tablet 04149301 Accepted
04:12:05 lightbulb 04300460 Invalid ticket
04:24:21 laptop 04389172 Accepted
04:40:23 lightbulb 04814175 Accepted
04:40:55 tablet 04817853 Accepted
04:42:18 smartphone 04927332 Expired offer
05:06:43 tablet 05079393 Out of stock
05:16:48 tablet 05513150 Out of stock
05:33:02 television 05760312 Expired offer
05:43:32 tablet 06037905 Out of stock
06:12:48 smartphone 06440172 Expired offer
06:35:25 laptop 06507277 Accepted
06:42:29 lightbulb 06586255 Invalid ticket
06:55:31 lightbulb 06905583 Accepted
06:55:33 lightbulb 06905583 Invalid ticket
07:40:05 smartphone 07428006 Expired offer
07:49:12 television 07588086 Expired offer
08:14:56 laptop 08111865 Expired offer
Ho provato a fare in modo che l'esempio copra tutti i possibili scenari di output, ma per favore lascia un commento se qualcosa non è chiaro.
Questo è code-golf , è possibile scrivere un programma o una funzione e non sono consentiti loop standard.