การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

30
พ่อตลกเป็นเรื่องสนุก
เราทุกคนรู้เรื่องตลกของพ่อแบบคลาสสิคที่จะทำสิ่งนี้: บางคนพูดประโยคเพื่ออธิบายตนเอง (เช่นI'm tiredหรือI'm confused) ผู้ที่คลั่งไคล้เรื่องตลกมาพร้อมและตอบHi <adjective>, I'm Dad!เนื่องจากการแนะนำตามรูปแบบเดียวกัน ( I'm PeterตามรูปแบบเดียวกับI'm hungry) งานของคุณคือการป้อนข้อมูลในรูปแบบของตัวอธิบายและส่งแบบฟอร์ม dad-joke ที่เหมาะสม แต่แทนที่จะใช้คำว่า "พ่อ" คุณจะใช้ชื่อของภาษาโปรแกรมที่คุณกำลังเขียนโปรแกรม ใน. กรณีทดสอบ (สมมติว่าพวกเขากำลังถูกวิเคราะห์โดย Python): I'm amazing Hi amazing, I'm Python! I'm tired Hi tired, I'm Python! I'm hungry Hi hungry, I'm Python! I'm fat Hi fat, I'm Python! ตอนนี้สมมติว่ากรณีทดสอบเหล่านี้กำลังถูกวิเคราะห์โดย Golfscript: I'm …

22
“ ขณะที่เราเดินทางไปในจักรวาล…”
คุณจะได้รับชื่อหนึ่งใน 20 วัตถุที่ใหญ่ที่สุดในระบบสุริยะ งานของคุณคือการคืนค่าประมาณรัศมีของมันแสดงเป็นกิโลเมตร นี่คือความท้าทายของรหัสที่คะแนนของคุณประกอบด้วยความยาวของรหัสของคุณ (เป็นไบต์) คูณด้วยอัตราการลงโทษ≥1≥1\ge 1ขึ้นอยู่กับการประมาณที่เลวร้ายที่สุดของคุณ ดังนั้นคะแนนต่ำสุดชนะ "ในขณะที่เราเดินทางจักรวาล" เป็นบรรทัดสุดท้ายของเพลงดาวเคราะห์คาราวานโดย Black Sabbath , หลังจากนั้นก็ปกคลุมด้วย Pantera วัตถุระบบสุริยะ ที่มา: Wikipedia หมายเหตุ: อันดับจะได้รับข้อมูลเท่านั้น อินพุตเป็นชื่อของวัตถุ n | Object | Radius (km) ----+----------+------------- 1 | Sun | 696342 2 | Jupiter | 69911 3 | Saturn | 58232 4 | Uranus | 25362 5 …

30
ตรวจจับคลื่นความร้อน
พื้นหลัง สถาบันอุตุนิยมวิทยาแห่งเนเธอร์แลนด์กำหนดคลื่นความร้อน * เป็นชุดอย่างน้อย 5 วันติดต่อกันที่ weather25 ° C สภาพอากาศ ("ฤดูร้อนอากาศ") เช่นอย่างน้อย 3 วันนั้นคือ≥30° C ("สภาพอากาศร้อนชื้น") ) สภาพอากาศในเขตร้อนชื้นไม่จำเป็นต้องวัดอย่างต่อเนื่องตัวอย่างเช่น: 30, 25, 30, 26, 27, 28, 32, 30เป็นคลื่นความร้อน 8 วันที่มี 4 วันของสภาพอากาศเขตร้อน * (ดีตามมาตรฐานดัตช์) ท้าทาย ให้รายการที่ไม่ว่างของจำนวนเต็มบวกที่เป็นตัวแทนของการวัดอุณหภูมิเซลเซียสจากวันที่ต่อเนื่องกันตัดสินใจว่ารายการนั้นมีคลื่นความร้อน (ตามคำจำกัดความข้างต้น) คำตอบที่สั้นที่สุดเป็นไบต์ชนะ กรณีทดสอบ Falsey: [30] [29, 29, 29, 47, 30] [31, 29, 29, 28, 24, 23, …

30
รหัสที่สั้นที่สุดในภาษาของคุณเพื่อคงสตริงไว้ในการรีบูต
โปรแกรมของคุณ: คุณจะเขียนสองโปรแกรม (ทั้งในภาษาเดียวกัน) โปรแกรมหน่วยเก็บใช้สตริงจาก STDIN และเก็บไว้ที่ไหนสักแห่งถาวร (ดูด้านล่าง) แล้วออกโดยไม่มีข้อผิดพลาด โปรแกรมดึงข้อมูลไม่มีการป้อนข้อมูลดึงสายอักขระที่เก็บไว้และพิมพ์ลงใน STDOUT วัตถุประสงค์ของการทดสอบความคงทน: คุณควรจะสามารถเรียกใช้โปรแกรมจัดเก็บข้อมูลในเครื่องท้องถิ่นของคุณจากนั้นหมุนเวียนรอบเครื่องท้องถิ่นของคุณแล้วเรียกโปรแกรมเรียกคืนจากเครื่องท้องถิ่นของคุณ คุณสามารถซ่อนสตริงได้ตามต้องการ (แม้กระทั่งบนเว็บ) ตราบใดที่คุณผ่านการทดสอบการรีบูต กรณีทดสอบ: การจัดเก็บข้อมูลแล้วดึง: echo foo | Store Retrieve foo ร้านค้าซ้ำควรเขียนทับ (เช่นวิธี set ()): echo foo | Store echo bar | Store Retrieve bar การเรียกคืนซ้ำแล้วซ้ำอีกเป็นวิธีที่ไม่ทำลาย (เช่นวิธี get ()): echo foo | Store Retrieve foo Retrieve foo ดึงข้อมูลก่อนการเรียกใช้หน่วยเก็บข้อมูลใด …

5
TryItOnquine Challenge
(ขึ้นอยู่กับโพสต์นี้และการสนทนาที่ตามมาในการแชท - ขอบคุณ Dennis for TIO!) ความท้าทาย เลือกภาษาที่ใช้ได้ในขณะนี้ในที่เว็บไซต์ TryItOnlineเช่นPowerShell เขียนรหัสในภาษานั้นในหน้านั้นซึ่งไม่ได้รับอินพุตใด ๆ เช่นเมื่อคลิกปุ่มRunผลลัพธ์ในหน้านั้นจะเหมือนกับที่อยู่ในฟิลด์ "URL ล้วน" เมื่อบันทึก / จัดเก็บคลิกปุ่มแทน สำหรับตัวอย่างที่สมมติว่าสมมติว่าaaaเป็นรหัสสำหรับวิธีการแก้ไขปัญหานี้ใน PowerShell จากนั้นผลลัพธ์ของการคลิกเรียกใช้ด้วยaaaรหัสที่https://tio.run/#powershellควรส่งออกhttps://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AAซึ่งเป็นฟิลด์ "URL ธรรมดา" เมื่อคลิกที่ปุ่มบันทึก / จัดเก็บ เกณฑ์การให้คะแนน URL ที่เป็นส่งของคุณความท้าทายนี้ ผู้ชนะคือ URL ที่สั้นที่สุดวัดเป็นไบต์ สำหรับตัวอย่างข้างต้น URL ที่https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AAเป็นการส่งต่อความท้าทายที่44 ไบต์ URL ที่สั้นที่สุดที่ตอบสนองความท้าทายที่เหลืออยู่นี้จะได้รับความท้าทายและได้รับคะแนนบราวนี่ (ไม่สามารถแลกคะแนนได้) เนื่องจากมีความยาวต่ำสุดที่เป็นไปได้ที่ชัดเจนหากการส่งสองครั้งเสมอกันการส่งก่อนหน้านี้จะชนะ การสร้าง URL นี่คือจุดเริ่มต้นของอัลกอริทึมการสร้าง URL ในที่เก็บ คุณสามารถดูวิธีการใช้พื้นที่รหัสหลักองค์ประกอบพิเศษใด ๆ ต่อท้ายสตริงจะกิ่วและการแปลง Base64 แล้วเสริม##ไว้ล่วงหน้า ฯลฯ …

30
นักสะสมเหรียญทอง
หมายเหตุ: การสำรวจความชื่นชอบของชุมชนจะเปิดตัวเร็ว ๆ นี้ ใน KoTH นี้เป้าหมายคือการเป็น bot สุดท้ายที่ยังมีชีวิตอยู่ เหรียญจะถูกวางในพื้นที่สุ่มและบอทของคุณจะต้องได้รับเหรียญก่อน ถ้าบอทวิ่งเข้าไปในบอทอื่นบอบ็อตที่มีเหรียญมากกว่าจะชนะ รายละเอียดเพิ่มเติมด้านล่าง ประเภทเหรียญ เหรียญมี 2 ประเภทคือทองคำและเงิน ทองเพิ่ม 5 เหรียญเพื่อความแข็งแรงของบอทและเงินเพิ่ม 2 เมื่อรวบรวมเหรียญแล้วจะมีการวางเหรียญอีกอันไว้ที่จุดอื่นบนกระดาน ในเวลาใดก็ตามมีเหรียญทองหนึ่งใบและเหรียญเงินสี่ใบในที่เกิดเหตุ ชนบอท ในกรณีที่บอทสองคนพยายามที่จะครอบครองพื้นที่เดียวกันคนที่มีเหรียญมากกว่าจะอยู่ต่อและคนที่มีน้อยจะไม่ ... บอที่ชนะจะได้รับ85%ของเหรียญของฝ่ายตรงข้าม (ปัดเศษขึ้น) หากพวกเขาถูกมัดทั้งคู่ก็ตาย หากสามคนหรือมากกว่าพยายามครอบครองพื้นที่เดียวกันการชนะที่ทรงพลังที่สุดและรับ 85% ของเหรียญบอทอื่น ๆ ทั้งหมด ในกรณีที่ ธ ปทที่มีประสิทธิภาพมากที่สุดคือผูกทั้งหมดของบอทตายที่พยายามที่จะเข้าสู่พื้นที่ อารีน่า 4 + botCountยาวด้านของสนามกีฬาที่มีการคำนวณด้วย เมื่อวางบอทในตอนเริ่มเกมจะมีการสุ่มเลือกสถานที่ ระบบตรวจสอบให้แน่ใจว่าไม่มีบ็อตเริ่มต้นในพื้นที่เดียวกันหรือติดกัน เหรียญสร้างแบบสุ่มไม่รวม 3 โดย 3 ตารางมีศูนย์กลางอยู่ที่แต่ละบอท หากพบบอทอยู่นอกสนามแข่งขันมันจะตายทันที เวทีเริ่มต้นที่ (0,0) …

1
Ruby on Rails (หรือ Trackety Track)
คุณคือ Ruby วิศวกรรถไฟ งานของคุณคือการติดตามในหุบเขาใดก็ตามที่มันเข้าชมทุกสถานี ( M) จำนวนเส้นทางที่วางไม่สำคัญ แต่จะต้องวางในเส้นทางที่ต่อเนื่องซึ่งเริ่มต้นและสิ้นสุดที่จุดเข้า / ออกหุบเขา ( >) และไม่มีจุดใดข้ามตัวมันเอง มีข้อ จำกัด อื่น ๆ ไม่กี่: ภูเขา ( ^) จะไม่สามารถใช้ได้ดังนั้นคุณต้องไปรอบ ๆ พวกเขาแม่น้ำ ( ~) จะต้องข้ามโดยใช้สะพาน ( X) และขอบของหุบเขา ( #) ก็ไม่สามารถใช้ได้ กฎของการติดตาม หากการวางแทร็กไม่ถูกต้องจะมีการตกรางและไม่มีใครต้องการดังนั้นนี่คือกฎสำหรับการวางแทร็ก มีแทร็กสี่ชนิด: - | / \. นี่คือวิธีที่แต่ละคนอาจรวมกับคนอื่น ๆ : ชุดค่าผสมที่อนุญาตจาก-(ตรงกลางของแต่ละตัวอย่าง): ##### ##### ##### ##### ##### ##### …

29
คำนวณสแควร์และสแควร์รูท!
คุณต้องสร้างรูปหลายเหลี่ยมที่แสดงผลสี่เหลี่ยมจัตุรัสของอินพุตในภาษาหนึ่งและสแควร์รูทของอินพุตในอีกภาษาหนึ่ง คำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ! คุณต้องมีความแม่นยำอย่างน้อย 3 ตำแหน่งทศนิยมและอินพุตจะเป็นทศนิยมบวกเสมอ

15
บอร์ด Tic-Tac-Toe นี้ใช้ได้หรือไม่?
ท้าทาย ให้บอร์ด tic-tac-toe ในรูปแบบใด ๆ ตรวจสอบว่ามันถูกต้องหรือไม่ หากบอร์ดสามารถเป็นผลมาจากเกม tic-tac-toe ก็ถือว่าใช้ได้ ตัวอย่างเช่นกระดานนี้ถูกต้อง:XOX OXO XOXในทางตรงกันข้ามบอร์ดนี้ไม่ถูกต้อง: XXX XXO OOO อินพุต กระดานเขยิบแบบเต็ม (9/9) เต็มผล (ไม่ใช่ผลของเกม) กฎระเบียบ รูปแบบอินพุตต้องสามารถแสดงถึงบอร์ดอินพุตที่เป็นไปได้ทั้งหมด 512 รายการ มันจะต้องระบุพร้อมกับคำแนะนำในการสร้างถ้ามันชัดเจน / ไม่ชัดเจน คุณต้องระบุเครื่องหมายของบอร์ดแยกต่างหาก จะต้องมีสองเอาต์พุตที่เป็นไปได้หนึ่งรายการสำหรับความถูกต้องและอีกอันสำหรับความไม่ถูกต้อง คุณสามารถสันนิษฐานได้ว่าบอร์ดไม่มีจุดว่างเปล่า กรณีทดสอบ ถูกต้อง: XOX OXO XOX XOX XOX OXO XOO OOX OXX OXO XOX OXO ไม่ถูกต้อง: XXX XXX XXX OOO OOO …

30
ปลดเชือก
ตอนนี้เรามีวิธีดึงสตริงออกจากช่องว่างแล้ว อย่างไรก็ตามในฐานะสุภาพบุรุษ / สุภาพสตรีที่เหมาะสมเราควรถอดเสื้อผ้าออก การถอดสายจะเหมือนกับการลอกให้ละเอียดยิ่งขึ้นเท่านั้น แทนที่จะลบช่องว่างนำหน้าและหลังทั้งหมดในคราวเดียวเราจะลบทีละช่อง นอกจากนี้เรายังสลับกันระหว่างการนำหน้าและต่อท้ายเพื่อไม่ให้ขั้นตอนการเบิร์นเสีย ตัวอย่างเริ่มต้นด้วย" codegolf "(ห้าช่องว่างนำหน้าและต่อท้าย): codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf codegolf ก่อนอื่นเอาท์พุทสตริงไม่เปลี่ยนแปลง จากนั้นส่งออกทุกขั้นตอน เริ่มต้นด้วยการลบช่องว่างนำหน้า (ถ้ามี - ดูกฎ # 2) อินพุตอาจมีช่องว่างนำหน้าและต่อท้ายจำนวนแตกต่างกัน หากคุณไม่มีที่ว่างในอีกด้านหนึ่งให้คลายอีกส่วนหนึ่งจนกว่าสตริงนั้นจะว่างเปล่า อินพุตอาจไม่มีช่องว่างนำหน้าหรือต่อท้าย หากเป็นกรณีนี้ให้ส่งออกตามที่เป็นอยู่ ใช้ค่าเริ่มต้นฉันวิธีการ / O PPCG ของ PPCG ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม พฤติกรรมที่ไม่ได้กำหนดไว้ในอินพุตว่างหรืออินพุตที่มีช่องว่างเท่านั้นก็โอเค คุณสามารถสันนิษฐานได้ว่าสตริงจะมีอักขระจากพื้นที่พิมพ์ ASCII ( 0x20ถึง0x7E) เท่านั้น ตัวอย่าง - ช่องว่างจะถูกแทนที่ด้วยจุด.เพื่อให้อ่านง่ายขึ้น: 4 …
48 code-golf  string 

16
เคล็ดลับในการสร้างรูปหลายเหลี่ยม
พูดได้หลายภาษาเป็นโปรแกรมที่สามารถทำงานใน 2 หรือมากกว่าการเขียนโปรแกรมภาษาที่แตกต่างกัน คุณมีเคล็ดลับทั่วไปอย่างไรในการสร้างรูปหลายเหลี่ยมหรือเลือกภาษาที่ง่ายต่อการเขียนรูปหลายเหลี่ยมสำหรับงานเฉพาะ กรุณาโพสต์เคล็ดลับที่สามารถนำไปใช้ในสถานการณ์ส่วนใหญ่ นั่นคือพวกเขาไม่ควรทำงานในหลายภาษาของสองภาษาเท่านั้น (คุณสามารถโพสต์คำตอบสำหรับคำถามที่พูดได้หลายภาษาหากคุณมีเคล็ดลับเฉพาะเจาะจงมากเกินไป) แต่คุณสามารถแนะนำคุณสมบัติของภาษาที่ทำให้การทำงานกับหลายภาษาเป็นเรื่องง่าย กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ และอย่าลังเลที่จะแนะนำให้แก้ไขหากเคล็ดลับเฉพาะภาษาใช้กับภาษาอื่นด้วย
48 tips  polyglot 

30
ลดความน่าเชื่อถือของสตริงนี้!
เมื่อสร้าง Palindrome ตามความท้าทายนี้ให้ลดระดับความดัง กรณีทดสอบ abcdedcba -> abcde johncenanecnhoj -> johncena ppapapp -> ppap codegolflogedoc -> codegolf เช่นนี้เป็นเรื่องเกี่ยวกับ depalindromizing, รหัสของคุณไม่สามารถเป็นประโยค โปรดจำไว้ว่านี่คือรหัสกอล์ฟดังนั้นโค้ดที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ

8
ตรวจสอบว่าระบบเหรียญเป็นมาตรฐานหรือไม่
ของแคชเชียร์ขั้นตอนวิธีการเป็นขั้นตอนวิธีการสำหรับการเปลี่ยนแปลงในจำนวนที่น้อยที่สุดของเหรียญที่ทำงานค่อนข้างดีที่สุดสำหรับระบบสกุลเงิน อย่างไรก็ตามเช่นเดียวกับอัลกอริธึมที่โลภมากที่สุดมันไม่ได้ไร้ข้อบกพร่อง หากระบบสกุลเงินถูกตั้งค่าอย่างถูกต้อง (หรือผิดพลาด) มีบางค่าที่อัลกอริทึมของแคชเชียร์จะล้มเหลวในการค้นหาการเปลี่ยนแปลงที่ดีที่สุด นำตัวอย่างต่อไปนี้: เรามี 4 ¢, 3 ¢และ 1 ¢เหรียญ เราต้องการทำ 6 ¢ อัลกอริทึมของแคชเชียร์จะเลือกเหรียญที่ใหญ่ที่สุดเป็นอันดับแรก (หนึ่ง 4 ¢เพื่อเริ่มต้น) และลบและทำซ้ำ ซึ่งจะส่งผลให้หนึ่ง 4 ¢เหรียญและสอง 1 ¢เหรียญรวมเป็น 3 เหรียญ โชคไม่ดีที่อัลกอริทึมมีวิธีทำ 6 ¢ด้วยสองเหรียญเท่านั้น (สอง 3 เหรียญ) ระบบการเปลี่ยนแปลงจะได้รับการพิจารณาว่าเป็นบัญญัติ iff สำหรับค่าจำนวนเต็มทั้งหมดอัลกอริทึมของแคชเชียร์จะค้นหาจำนวนเหรียญที่เหมาะสมที่สุด งาน ภารกิจของคุณคือการใช้ระบบเป็นคอนเทนเนอร์ที่ไม่ได้เรียงลำดับหรือเรียงลำดับของจำนวนเต็มแทนค่าเหรียญและเอาท์พุทเป็นค่าจริงหากอินพุตของระบบเป็นที่ยอมรับและไม่แน่นอน โปรแกรมของคุณควรทำงานได้กับทุกระบบที่สามารถสร้างมูลค่าได้ (เช่นทุกระบบจะมีเหรียญ 1)) นี่คือรหัสของกอล์ฟอย่างน้อยไบต์ชนะ กรณีทดสอบ รายการนี้ไม่ครบถ้วนสมบูรณ์โปรแกรมของคุณควรทำงานกับอินพุตที่ถูกต้องทั้งหมด 1, 3, 4 -> 0 …

30
มันเป็นผู้นำหรือติดตาม?
ในการท้าทายนี้คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้สตริงเป็นอินพุตและเอาต์พุตหนึ่งในสองค่าที่เป็นไปได้ เราจะเรียกค่าใดค่าหนึ่งtruthyและเป็นหนึ่งในfalsy พวกเขาไม่จำเป็นต้องจริงจะtruthyหรือfalsy เพื่อให้คำตอบที่ถูกต้องนั้นจะต้องเป็นไปตามเกณฑ์เพิ่มเติมสี่ประการ เมื่อคุณผ่านโปรแกรมของคุณกับตัวเองว่ามันจะออกผลลัพธ์เป็นtruthyค่า หากคุณส่งโปรแกรมของคุณเป็นอินพุตไปยังคำตอบที่เก่ากว่าก็ควรเอาท์พุทผลลัพธ์จริง (ของโปรแกรมที่คุณกำลังจะส่ง) หากคุณส่งคำตอบที่เก่ากว่าให้กับคำตอบของคุณในฐานะที่เป็นอินพุทก็ควรจะส่งออกผลลัพธ์ที่ผิดพลาด (ของโปรแกรมของคุณ) ต้องมีจำนวนอนันต์ของสตริงที่ประเมินtruthyการส่งออกในทุกคำตอบกับความท้าทาย (รวมถึงคำตอบใหม่ของคุณ) สิ่งนี้จะทำคือมันจะสร้างสายโซ่ของคำตอบซึ่งแต่ละโปรแกรมสามารถตรวจสอบว่าโปรแกรมอื่น ๆ ในกลุ่มมาก่อนหรือหลังจากนั้น เป้าหมายของความท้าทายนี้คือการสร้างรายการข้อ จำกัด ของแหล่งที่มาซึ่งนำไปใช้กับคำตอบที่ต่อเนื่องทำให้แต่ละคนมีความท้าทายมากกว่าครั้งสุดท้าย ตัวอย่าง โซ่ (เขียนใน Haskell) สามารถเริ่มต้น: f _ = True Trueเนื่องจากไม่มีโปรแกรมที่มีอายุมากกว่าเกณฑ์ที่ใช้ไม่ได้กับคำตอบนี้ต้องส่งออกเพียงหนึ่งของค่าที่เป็นไปได้ทั้งสองในกรณีนี้ก็มักจะเอาท์พุท การทำเช่นนี้อาจเป็นคำตอบ: f x=or$zipWith(==)x$tail x ลองออนไลน์! ซึ่งอ้างว่ามีอักขระสองครั้งในแถวแถวหนึ่งในสตริง คำตอบแรกไม่มีคุณสมบัตินี้ในขณะที่สองไม่ ( ==) ดังนั้นนี่คือคำตอบถัดไปที่ถูกต้อง กฎพิเศษ คุณสามารถใช้ภาษาใดก็ได้ที่คุณต้องการ (ซึ่งมีการนำไปใช้อย่างอิสระ) หลาย ๆ ครั้งตามที่คุณต้องการ หากคุณเป็นคนสุดท้ายที่ตอบคำถามคุณต้องรออย่างน้อย 7 วันก่อนโพสต์คำตอบใหม่ โปรแกรมของคุณอาจไม่อ่านซอร์สของมันเอง เนื่องจากกฎข้อที่ 4 นั้นยากเกินกว่าจะตรวจสอบได้ว่ามีฟังก์ชั่นการเข้ารหัสที่เกี่ยวข้องหรือไม่จึงไม่อนุญาตให้ใช้ฟังก์ชั่นดังกล่าว …

30
สามเหลี่ยมตัวอักษร
คุณจะต้องพิมพ์ข้อความที่แน่นอนนี้: A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA ABCDEFGFEDCBA ABCDEFGHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHGFEDCBA ABCDEFGFEDCBA ABCDEFEDCBA ABCDEDCBA ABCDCBA ABCBA …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.