ซานต้าต้องการความช่วยเหลือในการกำหนดจำนวนเอลฟ์ที่เขาจะต้องช่วยเขาส่งของขวัญให้แต่ละบ้าน
ถ่านหินนั้นหนักกว่าของกำนัลอย่างมากดังนั้นซานต้าจะต้องการเอลฟ์สามคนสำหรับทุกคนที่อยู่ในบ้าน มีเพียงสองเอลฟ์เท่านั้นที่จะช่วยมอบของขวัญให้ซานต้า
บนแผนที่ของซานต้าบ้านเป็นตัวแทนจากและบ้านแต่ละหลังถูกแบ่งออกโดย*
+
จะมีตัวเลขอยู่ทั้งสองข้างของบ้าน - ด้านซ้ายแสดงถึงจำนวนคนแก่นในบ้านและอีกคนทางด้านขวาแสดงจำนวนคนดีในบ้าน หากไม่มีหมายเลขในด้านใดด้านหนึ่งมันจะตีความว่าเป็น 0
ซานต้าไม่ได้ไปเยี่ยมผู้ที่ไม่ได้อยู่ในจิตวิญญาณแห่งคริสต์มาส (พวกเขาไม่สมควรได้รับถ่านหิน) ดังนั้นบางครั้งบ้านอาจไม่มีตัวเลขด้านใดด้านหนึ่ง ในกรณีนี้ซานต้าไม่ต้องการความช่วยเหลือจากเหล่าเอลฟ์
ตัวอย่างเช่นหนึ่งในแผนที่ของซานต้าอาจมีลักษณะเช่นนี้
1*3+2*2+1*+*2
ในบ้านหลังแรกมีซุกซน1และ3ดีซานต้าจะต้องเก้าเอลฟ์ ในครั้งที่สองมี2ซนและ2ดี santa จะต้องสิบเอลฟ์ ในบ้านหลังที่สามมี1ซนและ0ดีซานต้าจะต้องสามเอลฟ์และในบ้านหลังสุดท้ายมี0ซนและ2ดีซานต้าจะต้องสี่เอลฟ์
นี่เป็นแผนที่ที่ง่ายกว่าฉบับหนึ่งในแผนที่ของซานต้า โดยปกติแผนที่ของซานต้าจะมีหลายบรรทัดและอยู่ในรูปทรงสี่เหลี่ยมเพื่อให้พอดีกับรายการของเขา แผนที่ปกติอาจมีลักษณะเช่นนี้ ( \n
ที่ท้ายของแต่ละบรรทัด)
1*2+*+*4+1*
2*4+3*+1*6+*
*+*+4*2+1*1
*4+*3+1*+2*3
3*10+2*+*5+*
ในแผนที่นี้ซานต้าต้องการ((1 + 0 + 0 + 1 + 2 + 3 + 1 + 0 + 0 + 0 + 4 + 1 + 0 + 0 + 1 + 2 + 3 + 2 + 0 + 0) * 3) + ((2 + 0 + 4 + 0 + 4 + 0 + 6 + 0 + 0 + 0 + 2 + 1 + 4 + 3 + 0 + 3 + 10 + 0 + 5 + 0) * 2)
= 151เอลฟ์
ท้าทาย
ช่วยซานต้าระบุจำนวนเอลฟ์ที่เขาต้องการส่งมอบสินค้าไปยังบ้านแต่ละหลัง!
บ้าน
- บ้านเป็นตัวแทนจาก
*
- บ้านแบ่งออกเป็น
+
- หมายเลขทางด้านซ้ายของบ้านเป็นสัญลักษณ์ของจำนวนคนแก่น (ไม่มีหมายถึงเลข 0)
- หมายเลขด้านขวาเป็นสัญลักษณ์ของจำนวนคนดี (ไม่มีตัวเลขหมายถึง 0)
- อาจมีการขึ้นบรรทัดใหม่ (
\n
) ในอินพุตซึ่งควรจัดการเป็นแยก
แถน
- ซานต้าต้องการความช่วยเหลือจากพวกเอลฟ์สามคนสำหรับคนซุกซน (ถ่านหินหนักกว่าของกำนัลมาก)
- ซานต้าต้องการความช่วยเหลือจากสองเอลฟ์เพื่อคนดี
- หากไม่มีตัวเลขด้านใดด้านหนึ่งซานต้าจะไม่ไปเยี่ยมบ้านหลังนั้นและไม่ต้องการเอลฟ์ใด ๆ
สิ่งที่ต้องทำ
พิมพ์จำนวนเอลฟ์ซานต้าต้องช่วยเขาจัดส่งของขวัญไปที่บ้านเพื่อ เนื่องจากซานต้าทุกคนจำเป็นต้องรู้ว่ามีเอลฟ์กี่ตัวที่นำมาคุณจะต้องพิมพ์เอลฟ์ที่เพิ่มจำนวนที่เขาต้องการสำหรับรายการของบ้าน
กรณีทดสอบ
1*1 => 5
1*2 => 7
2*1 => 8
1* => 3
*1 => 2
* => 0
1*1+1*1 => 10
1*2+2*1 => 15
1*+*1 => 5
1*1+*+1*1 => 10
*+*+*+* => 0
กฎระเบียบ
- อินพุตสามารถนำมาเป็นอาร์กิวเมนต์ในฟังก์ชันหรือจากSTDINหรือเทียบเท่า
- เอาต์พุตสามารถเป็นค่าส่งคืนของฟังก์ชันหรือพิมพ์ไปที่STDOUTหรือเทียบเท่า
- การป้อนข้อมูลจะมีเฉพาะตัวเลข
+
,*
และการขึ้นบรรทัดใหม่\n
- ผลผลิตควรเป็นจำนวนรวมของเอลฟ์ที่ซานต้าต้องการความช่วยเหลือในการส่งมอบในวันคริสต์มาส
- ช่องโหว่มาตรฐานใช้
เกณฑ์การให้คะแนน
เลื่อนของซานต้าเต็มไปด้วยของขวัญให้เขามีพื้นที่น้อยกว่าในการเรียกใช้รหัสดังนั้นเขาต้องการรหัสที่สั้นที่สุดที่เขาจะได้รับ (ไม่ต้องกังวลถ้ามันไม่สมเหตุสมผลถ้าคุณถามตรรกะของซานต้าคุณจะต้องอยู่ในรายการซุกซน ) เนื่องจากเหตุผลที่ถูกต้องของซานต้าการส่งที่สั้นที่สุดในหน่วยไบต์ชนะ!
ลีดเดอร์บอร์ด
นี่คือตัวอย่างสแต็กที่สร้างทั้งกระดานผู้นำและภาพรวมของผู้ชนะตามภาษา
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยบรรทัดแรกโดยใช้เทมเพลต Markdown ต่อไปนี้
## Language Name, N bytes
โดยที่ N คือขนาดไบต์ของการส่งของคุณ
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (ตัวอย่างเช่นการดูผ่านคะแนนเก่าหรือรวมถึงการตั้งค่าสถานะในจำนวนไบต์) เพียงตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นจำนวนสุดท้ายในส่วนหัวของคุณ
## Language Name, <s>K</s> X + 2 = N bytes
hello-world.c
ในกรณีที่เราจำเป็นต้องมีเอลฟ์พิเศษเราสามารถรวบรวมเป็นหนึ่งในไม่กี่วินาที เอลฟ์คนงานได้รับการจัดสรรอย่างกระตือรือร้นไปยังเป้าหมายตามที่ Jojodmo กล่าว (ฉันแน่ใจว่าฉันรู้จัก Jojodmo เขาจะต้องเป็นผู้ดูแลระบบของเรา) จากนั้นใช้การโทรกลับเพื่อแจ้งเตือนเมื่อถึงเวลาที่จะต้องแทรกลงในสระเลื่อนหรือเมื่อเด็กเห็น
max(naughty) + max(nice)
เอลฟ์สูงสุดตลอดเส้นทางหรือไม่? ฉันคิดว่าเขามีฝูงเอลฟ์บินอยู่กับเขา แต่บางทีคุณอาจมีข้อมูลวงในเกี่ยวกับเรื่องนั้นและฉันต้องมองให้ใกล้ขึ้นในปีนี้ :)