คุณมีแพนเค้กกองซ้อนบนจานที่มีน้ำเชื่อมอยู่ด้านบนหนาจนไม่สามารถไหลลงด้านข้างได้ คุณจะไม่มีความสุขที่จะกินจนกว่าใบหน้าทั้งสองของแพนเค้กแต่ละชิ้นจะสัมผัสกับน้ำเชื่อมอย่างน้อยตอนนี้ แต่ตอนนี้มีแพนเค้กบนใบหน้าเดียวเท่านั้น
คุณรู้ว่าน้ำเชื่อมไม่เคยซึมผ่านแพนเค้กแม้แต่เดียว แต่มันสามารถถ่ายโอนไปเรื่อย ๆ ผ่านการสัมผัสแบบเผชิญหน้าระหว่างสองแพนเค้ก เมื่อใบหน้าของแพนเค้กได้สัมผัสกับน้ำเชื่อมมันจะถูกเคลือบด้วยน้ำเชื่อมตลอดกาลและจะทำให้ใบหน้าที่ไม่ได้เคลือบด้วยน้ำเชื่อมสัมผัสกับน้ำเชื่อมที่เคลือบด้วย มันเป็นไปได้ที่จะถ่ายโอนน้ำเชื่อมไปและกลับจากด้านบนของจานเช่นกัน
คุณดำเนินการที่จะขนทุกใบหน้าแพนเค้กกับน้ำเชื่อมโดยใส่ไม้พายด้านล่างหนึ่งหรือมากกว่าแพนเค้กและพลิกพวกเขาทั่วทุกมุมตรงตามที่จะทำในแพนเค้กเรียงลำดับ (น่าเสียดายที่ไม้พายชนิดนี้ทนต่อน้ำเชื่อมและไม่ได้ช่วยแจกจ่ายน้ำเชื่อมโดยการแตะใบหน้าแพนเค้ก) น่าเศร้าที่คุณสูญเสียการติดตามใบหน้าแพนเค้กที่สัมผัสกับน้ำเชื่อม แต่คุณจำได้ว่าคุณทำพลิกแล้ว
เมื่อพิจารณาการพลิกที่ผ่านมาคุณสามารถระบุได้ว่าแพนเค้กของคุณเคลือบด้วยน้ำเชื่อมหรือยัง?
ท้าทาย
เขียนโปรแกรมที่ใช้จำนวนเต็มบวก N สำหรับจำนวนแพนเค้กและรายการจำนวนเต็มบวก (ทั้งหมด <= N) สำหรับการพลิกที่คุณทำมาจนถึงตอนนี้ แต่ละหมายเลขในรายการแสดงถึงจำนวนของแพนเค้กที่พลิก เอาท์พุทค่าความจริงถ้าแพนเค้กเสร็จแล้วจะถูกเคลือบและค่าเท็จถ้าไม่ ( คำจำกัดความความจริง / เท็จ )
อินพุตควรมาจาก stdin หรือบรรทัดคำสั่งและเอาต์พุตควรไปที่ stdout (หรือทางเลือกที่ใกล้เคียงที่สุด) ไม่เป็นไรถ้าอินพุตของคุณต้องการการจัดรูปแบบเพิ่มเติมเล็กน้อยเช่น[1, 1, 2, 2]
แทน1 1 2 2
รายการ
ตัวอย่าง
สมมติว่า N = 2 ดังนั้นเราจึงมีแพนเค้กสองกองบนจานเริ่มต้นด้วยน้ำเชื่อมด้านบน
หากรายการ1 1 2 2
นี้หมายความว่าเรา ...
- พลิกแพนเค้กด้านบน - เคลือบใบหน้าส่วนบนของแพนเค้กด้านล่าง
- พลิกด้านบนอีกครั้ง - เคลือบใบหน้าด้านล่างเดิมของแพนเค้กด้านบน
- พลิกทั้งสอง - เคลือบจาน
- พลิกทั้งสองอีกครั้ง - เคลือบใบหน้าด้านล่างเดิมของแพนเค้กด้านล่าง
ทั้งหมดตั้งแต่สี่หน้าเคลือบเอาท์พุทจะเป็นสิ่งที่ชอบหรือTrue
1
หากรายการ1 2 2 1
นี้หมายความว่าเรา ...
- พลิกแพนเค้กด้านบน - เคลือบใบหน้าส่วนบนของแพนเค้กด้านล่าง
- พลิกทั้งสอง - ไม่มีการเคลือบ
- พลิกทั้งสองอีกครั้ง - ไม่มีอะไรเคลือบ
- พลิกด้านบนอีกครั้ง - เคลือบใบหน้าด้านล่างเดิมของแพนเค้กด้านบน
ตั้งแต่ใบหน้าสัมผัสจานยังคงน้ำเชื่อมฟรีการส่งออกจะเป็นสิ่งที่ชอบหรือFalse
0
หมายเหตุ
- รายการพลิกอาจมีขนาดใหญ่โดยพลการและอาจว่างเปล่าซึ่งในกรณีที่ผลลัพธ์เป็นเท็จ
- จานทำหน้าที่เป็นตัวส่งน้ำเชื่อม แต่มันไม่สำคัญว่ามันจะถูกเคลือบหรือไม่ (อันที่จริงแล้วน้ำยาฟลิฟท์ใด ๆจะเคลือบจานเพราะหน้าแพนเค้กที่สัมผัสต้องถูกเคลือบ แต่ไม่ว่าจะเป็นอะไร)
- ไม่สามารถพลิกแผ่นได้
- คุณสามารถสมมติว่าแพนเค้กเหล่านี้เป็นดิสก์ยูนิตที่ไม่มีด้านพูดถึงเพียงสองใบหน้าที่ตรงกันข้าม
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ ทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ
Put syrup on the pancakes!