บทนำ
คุณเป็นผู้จัดการแผนกอิเล็กทรอนิกส์ในร้านค้าปลีกรายใหญ่และวันขายที่ยิ่งใหญ่ที่สุดของปีคือวันศุกร์นี้ เพื่อช่วยจัดการฝูงชนร้านค้าของคุณกำลังใช้ระบบตั๋วสำหรับข้อเสนอที่ใหญ่ที่สุดซึ่งลูกค้าจะต้องแสดงตั๋วก่อนซื้อรายการ งานของคุณคือการเขียนโปรแกรมเพื่อตรวจสอบตั๋ว
เนื่องจากคอมพิวเตอร์เพียงเครื่องเดียวที่มีอยู่ในร้าน (เนื่องจากการตัดงบประมาณ) เป็นไดโนเสาร์ที่มีแป้นพิมพ์หัก (และสิ่งที่คุณมีคือคีย์บอร์ด USB ซึ่งไม่สามารถใช้งานได้) คุณจะต้องป้อนโปรแกรมด้วยเมาส์ ดังนั้นโปรแกรมของคุณควรสั้นที่สุด
ผลิตภัณฑ์
ร้านค้าของคุณกำลังเปิดขายในห้าผลิตภัณฑ์ที่แตกต่างกันตามรายการด้านล่าง แต่ละผลิตภัณฑ์มีชื่อที่เป็นตัวพิมพ์เล็กทั้งหมดและกฎที่แตกต่างกันเกี่ยวกับจำนวนที่สามารถซื้อได้
television
: มี5
โทรทัศน์จอแบนในสต็อกที่อาจจะซื้อมาจาก00:00:00
(เที่ยงคืน)00:59:59
เพื่อsmartphone
: มี10
สมาร์ทโฟนอยู่ในสต็อก แต่ลูกค้าที่อยู่ในสายจาก00:00:00
(เที่ยงคืน) จะ00:59:59
ได้รับบัตรกำนัลหนึ่งใบเมื่อหมดtablet
: มี10
แท็บเล็ตที่สามารถซื้อได้ตลอดเวลาlaptop
: มีไม่ จำกัด จำนวนของแล็ปท็อปที่อาจจะซื้อมาจากมี00:00:00
(เที่ยงคืน)07:59:59
เพื่อlightbulb
: มีหลอดไฟไม่ จำกัด จำนวนที่สามารถซื้อได้ทุกเวลา
อินพุต
สตริงหลายบรรทัดที่มีแต่ละบรรทัดในรูปแบบต่อไปนี้ เส้นถูกเรียงตามการประทับเวลา
<time stamp> <product name> <ticket number>
- หมายเลขตั๋วยาว 8 หลัก ตัวเลขสุดท้ายคือตัวเลขเช็คเท่ากับผลรวมของเจ็ดหลักแรกโมดูโล 10 เพื่อให้ถูกต้องหมายเลขตั๋วจะต้องมีหมายเลขเช็คที่ถูกต้องและจะต้องมากกว่าหมายเลขตั๋วก่อนหน้าทั้งหมดอย่างเคร่งครัด
- ชื่อผลิตภัณฑ์เป็นหนึ่งในสตริงที่ระบุไว้ข้างต้น
- การประทับเวลาคือเวลาของวันในรูปแบบ
HH:MM:SS
ที่HH
เป็นชั่วโมงสองหลักจาก 00-23 และMM
และSS
เป็นนาทีสองหลักและวินาทีตามลำดับ
เอาท์พุต
เอาต์พุตเป็นหนึ่งในสตริงต่อไปนี้โดยมีหนึ่งบรรทัดต่อตั๋ว เงื่อนไขต้องนำไปใช้ในการสั่งซื้อ
Expired offer
(นำไปใช้กับโทรทัศน์สมาร์ทโฟนและแล็ปท็อป) การประทับเวลาของตั๋วอยู่หลังจากตัดการซื้อผลิตภัณฑ์Invalid ticket
หมายเลขตั๋วมีจำนวนน้อยกว่าหรือเท่ากับจำนวนตั๋วก่อนหน้าหรือเช็คหลักไม่ถูกต้องGive voucher
(ใช้กับสมาร์ทโฟน) ผลิตภัณฑ์หมด แต่ลูกค้าทุกรายในสายก่อนที่ข้อเสนอหมดอายุจะได้รับเช็คฝนOut of stock
(นำไปใช้กับโทรทัศน์และแท็บเล็ต) ผลิตภัณฑ์ทั้งหมดมีจำหน่ายแล้ว ขออภัยปริมาณมี จำกัดAccepted
เป็นไปตามเงื่อนไขทั้งหมดดังนั้นให้ผลิตภัณฑ์แก่พวกเขา โปรดทราบว่าเฉพาะตั๋วที่ยอมรับเท่านั้นลดจำนวนสินค้าในสต็อก
ตัวอย่าง
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
ฉันได้ลองทำตัวอย่างครอบคลุมทุกสถานการณ์ผลลัพธ์ที่เป็นไปได้ แต่โปรดแสดงความคิดเห็นหากมีสิ่งใดไม่ชัดเจน
นี่คือโค้ดกอล์ฟคุณอาจเขียนโปรแกรมหรือฟังก์ชั่นและไม่อนุญาตให้ใช้วงลูปมาตรฐาน