pengantar
Anda adalah manajer departemen elektronik di sebuah toko ritel besar dan hari penjualan terbesar tahun ini adalah hari Jumat ini . Untuk membantu mengelola keramaian, toko Anda menerapkan sistem tiket untuk transaksi terbesar, di mana pelanggan harus menunjukkan tiket sebelum membeli barang. Tugas Anda adalah menulis program untuk memvalidasi tiket.
Karena satu-satunya komputer yang tersedia di toko (karena pemotongan anggaran) adalah dinosaurus dengan keyboard yang rusak, (dan semua yang Anda miliki adalah keyboard USB, yang tidak kompatibel) Anda harus memasukkan program Anda dengan mouse. Karena itu, program Anda harus sesingkat mungkin.
Produk
Anda toko menjalankan penjualan pada lima produk berbeda yang tercantum di bawah ini. Setiap produk memiliki nama semua huruf kecil dan aturan yang berbeda tentang berapa banyak yang dapat dibeli dan pada jam berapa.
television
: Ada5
televisi layar datar dalam stok yang dapat dibeli dari00:00:00
(tengah malam) hingga00:59:59
.smartphone
: Ada10
stok smartphone, tetapi setiap pelanggan yang mengantri dari00:00:00
(tengah malam)00:59:59
menerima voucher untuk satu kali mereka kehabisan.tablet
: Ada10
tablet yang dapat dibeli kapan saja.laptop
: Ada laptop dalam jumlah tidak terbatas yang dapat dibeli dari00:00:00
(tengah malam) hingga07:59:59
.lightbulb
: Ada jumlah lampu yang tidak terbatas yang dapat dibeli kapan saja.
Memasukkan
String multi-baris dengan setiap baris dalam format berikut. Garis diurutkan berdasarkan cap waktu.
<time stamp> <product name> <ticket number>
- Nomor tiket adalah 8 digit. Digit terakhir adalah digit-periksa yang sama dengan jumlah dari tujuh digit modulo 10. Untuk valid, nomor tiket harus memiliki digit-periksa yang benar dan harus benar-benar lebih besar daripada semua nomor tiket sebelumnya.
- Nama produk adalah salah satu string yang tercantum di atas.
- Cap waktu adalah waktu dalam format di
HH:MM:SS
manaHH
jam dua digit dari 00-23,MM
danSS
merupakan menit dua digit dan kedua masing-masing.
Keluaran
Outputnya adalah salah satu dari string berikut, dengan satu baris per tiket. Ketentuan harus diterapkan secara berurutan .
Expired offer
(Berlaku untuk televisi, telepon pintar, dan laptop.) Batas waktu tiket adalah setelah batas waktu untuk membeli produk.Invalid ticket
Entah nomor tiket kurang dari atau sama dengan jumlah tiket sebelumnya, atau digit-cek tidak valid.Give voucher
(Berlaku untuk smartphone.) Produk kehabisan stok, tetapi semua pelanggan yang antri sebelum penawaran berakhir mendapatkan cek hujan.Out of stock
(Berlaku untuk televisi dan tablet.) Semua produk telah terjual. Maaf, jumlahnya terbatas.Accepted
Semua persyaratan terpenuhi, jadi berikan mereka produknya. Perhatikan bahwa hanya tiket yang diterima yang mengurangi jumlah item dalam persediaan.
Contoh
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
Saya telah mencoba membuat contoh mencakup setiap skenario keluaran yang mungkin, tetapi silakan tinggalkan komentar jika ada yang tidak jelas.
Ini adalah kode-golf , Anda dapat menulis sebuah program atau fungsi, dan lubang loop standar tidak diizinkan.