Giriş
Büyük bir perakende mağazasında elektronik departmanının yöneticisisiniz ve yılın en büyük satış günü bu Cuma . Kalabalıkların yönetilmesine yardımcı olmak için mağazanız, müşterilerin bir ürün satın almadan önce bir bilet sunması gereken en büyük fırsatlar için bir bilet sistemi uyguluyor. İşiniz biletleri doğrulamak için bir program yazmak.
Mağazadaki tek bilgisayar (bütçe kesintileri nedeniyle) kırık bir klavyeye sahip bir dinozor olduğundan (ve sahip olduğunuz tek şey uyumlu olmayan USB klavyelerdir) programınızı bir fare ile girmeniz gerekir. Bu nedenle, programınız mümkün olduğunca kısa olmalıdır.
Ürün:% s
Mağazanız, aşağıda listelenen beş farklı üründe satış yapmaktadır. Her ürünün tamamı küçüktür ve kaç tane satın alınabileceği ve günün hangi saatinde alınabileceği konusunda farklı kuralları vardır.
television
:5
Stokta var00:00:00
(gece yarısı) ile satın alınabilecek düz ekran televizyonlar00:59:59
.smartphone
:10
Stokta akıllı telefonlar var , ancak00:00:00
(gece yarısından) herhangi bir müşteri00:59:59
tükendiğinde bir kupon alacak.tablet
:10
İstediğiniz zaman satın alınabilecek tabletler vardır.laptop
:00:00:00
(Gece yarısı) ile gece yarısı arasında satın alınabilecek sınırsız sayıda dizüstü bilgisayar vardır07:59:59
.lightbulb
: İstediğiniz zaman satın alabileceğiniz sınırsız sayıda ampul bulunmaktadır.
Giriş
Her satırın aşağıdaki biçimde olduğu çok satırlı bir dize. Satırlar zaman damgasına göre sıralanır.
<time stamp> <product name> <ticket number>
- Bilet numarası 8 basamaklıdır. Son basamak, ilk yedi basamaklı modulo 10'un toplamına eşit bir kontrol basamağıdır. Geçerli olması için, bir bilet numarasının doğru kontrol basamağına sahip olması ve önceki tüm bilet numaralarından kesinlikle daha büyük olması gerekir.
- Ürün adı, yukarıda listelenen dizelerden biridir.
- Zaman damgası biçiminde günün saatidir
HH:MM:SS
buradaHH
00-23 iki haneli saat veMM
veSS
ikinci sıra ile iki basamaklı dakika ve vardır.
Çıktı
Çıktı, bilet başına bir satır olacak şekilde aşağıdaki dizelerden biridir. Koşullar sırayla uygulanmalıdır .
Expired offer
(Televizyonlar, akıllı telefonlar ve dizüstü bilgisayarlar için geçerlidir.) Biletin zaman damgası, ürünü satın almak için kesmeden sonradır.Invalid ticket
Bilet numarası önceki biletin numarasından küçük veya ona eşit ya da onay basamağı geçersiz.Give voucher
(Akıllı telefonlar için geçerlidir.) Ürün stokta yok, ancak teklifin süresi dolmadan önce tüm müşteriler yağmur kontrolünden geçiyor.Out of stock
(Televizyonlar ve tabletler için geçerlidir.) Tüm ürün satıldı. Üzgünüz, miktar sınırlıydı.Accepted
Tüm koşullar karşılandığından, onlara ürünü verin. Yalnızca kabul edilen biletlerin stoktaki öğe sayısını azalttığını unutmayın.
Misal
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
Örneği olası her çıktı senaryosunu kapsayacak şekilde yapmaya çalıştım, ancak net olmayan bir şey varsa lütfen bir yorum bırakın.
Bu kod golf , bir program veya işlev yazabilirsiniz ve standart döngü deliklerine izin verilmez.