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

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

1
ช่วยพัฒนาตัวต่อใหม่ล่าสุดของ Alphys!
Alphys นักวิทยาศาสตร์ระดับสูงของ Underground ได้สร้างต้นแบบสำหรับปริศนาตัวใหม่เสร็จแล้ว อย่างไรก็ตามเธอดูเหมือนจะไม่พบใครที่ต้องการทดสอบ กฎของตัวต่อมีดังนี้: เป้าหมายคือการไปทางด้านขวาเริ่มต้นจากแผ่นกระเบื้องศูนย์กลางด้านซ้าย สำหรับปริศนาที่มีตัวเลขสูงให้เริ่มที่ด้านล่างของแผ่นกลางสองแผ่น (ตัวอย่าง: ในอาร์เรย์ 4x4 ที่ทำดัชนีเป็นศูนย์ตำแหน่งเริ่มต้นจะเป็น [2,0] - แถว 2, คอลัมน์ 0 ในอาร์เรย์ 5x5 ที่มีดัชนีเป็นศูนย์ตำแหน่งเริ่มต้นจะเป็น [2,0] - แถว 2, คอลัมน์ 0. ) กระเบื้องแต่ละสีมีฟังก์ชัน "ซาดิสต์" ของตัวเอง: กระเบื้องสีชมพูและสีเขียว (แสดงเป็น "P" และ "G") ไม่ทำอะไรเลย กระเบื้องสีแดงและสีเหลือง ("R", "Y") ไม่สามารถใช้ได้ กระเบื้องส้ม ("O") ทำให้ผู้เล่นมีกลิ่นเหมือนส้ม กระเบื้องสีม่วง ("U") บังคับให้ผู้เล่นไปยังแผ่นถัดไปในทิศทางที่พวกเขากำลังเผชิญอยู่และทำให้พวกเขามีกลิ่นเหมือนมะนาว กระเบื้องสีฟ้า ( "B") …

6
ที่บอกว่า? 2559 การเลือกตั้งประธานาธิบดี
ในการท้าทายนี้งานของคุณคือการเขียนโปรแกรมที่มีอักขระน้อยกว่า 300 ตัวที่ใช้ย่อหน้าสั้น ๆ หรือประโยคสองสามประโยคที่ผู้สมัครได้พูดและส่งออกผู้ที่กล่าวถึง อินพุต : สามารถใช้เป็นพารามิเตอร์ในฟังก์ชั่นอินพุตไปยังโปรแกรมอื่น ๆ มันจะเป็นย่อหน้าสั้น ๆ คั่นอย่างถูกต้อง ผลลัพธ์ : ผู้สมัครที่คุณคิดว่าเป็น นี่อาจเป็นหนึ่งใน Ben Carson (1) Ted Cruz (2) John Kasich (3) Marco Rubio (4) Donald Trump (5) Hillary Clinton (6) Bernie Sanders (7) ฉันได้ละทิ้งชื่อของคนที่ลาออกตั้งแต่วันที่ 1 มีนาคม คุณอาจส่งออกชื่อตัวเองหรือสะดวกกว่าหมายเลขที่สอดคล้องกับชื่อ เกณฑ์การให้คะแนน: คะแนน ของคุณคือเปอร์เซ็นต์ของกรณีทดสอบที่คุณได้รับ คะแนนสูงสุดชนะ ความสัมพันธ์ (หรือคะแนนสมบูรณ์แบบ) จะแตกตามความยาวของรหัสเช่นเดียวกับในการตีกอล์ฟ กรณีทดสอบสามารถดึงจาก: http://www.presidency.ucsb.edu/debates.php …

10
เมทริกซ์บล็อกแนวทแยงมุมจากคอลัมน์
สร้างแรงบันดาลใจจาก Copied จากคำถามนี้ที่ Stack Overflow ให้เมทริกซ์Aสร้างเมทริกซ์Bที่คอลัมน์ของAถูกจัดเรียงในแนวขวางแบบบล็อก ตัวอย่างเช่นกำหนด 1 2 3 4 5 6 ผลลัพธ์จะเป็น 1 0 0 4 0 0 0 2 0 0 5 0 0 0 3 0 0 6 กฎระเบียบ อินพุตและเอาต์พุตอาจอยู่ในรูปแบบของอาร์เรย์ 2 มิติอาร์เรย์ที่ซ้อนกันหรือสตริงที่มีตัวคั่นต่างกันสำหรับแถวและคอลัมน์ ตัวเลขในอินพุต (เมทริกซ์A) จะเป็นจำนวนเต็มบวก อนุญาตให้ใช้รูปแบบ Unary ได้ตราบใดที่เลขศูนย์ในเอาต์พุตแสดงด้วยวิธีที่สมเหตุสมผล ตัวอย่างเช่นผลลัพธ์ข้างต้นสามารถแสดงได้โดยใช้เครื่องหมายคำพูดเพื่อใส่แต่ละหมายเลข: '1' '' '' '1111' '' '' '' …

11
ผลรวมของสารตั้งต้นไบนารี
ความท้าทายนี้เป็นเรื่องง่ายกำหนดตัวเลขทศนิยมให้แปลงเป็นเลขฐานสองและคำนวณผลรวมของสตริงย่อยของเลขฐานสองซึ่งความยาวจะสั้นกว่าหมายเลขเดิม นี่คือตัวอย่าง: Input: 11 Binary: 11 -> 1011 Substrings: 101 = 5 011 = 3 10 = 2 01 = 1 11 = 3 1 = 1 0 = 0 1 = 1 1 = 1 Sum: 5+3+2+1+3+1+0+1+1=17 Output: 17 โปรแกรมของคุณควรใช้จำนวนเต็มทศนิยมเดียวเป็นอินพุตและเอาต์พุตผลรวมของสตริงย่อยไบนารีดังที่เห็นด้านบน คุณอาจสมมติว่าอินพุตจะมีตัวเลขมากกว่าสองหลักเสมอในการแทนค่าไบนารี่ของมันและในอินพุตจะไม่ทำให้เกิดข้อผิดพลาดใด ๆ ระหว่างการทำงานของโปรแกรมของคุณ นี่คือcode-golfรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! กรณีทดสอบ: 2 => 1 3 …

5
แยกสตริงนำไปสู่หลักที่ซ้อนกัน
งาน สตริงSถูกสร้างขึ้นด้วยกระบวนการต่อไปนี้: เริ่มต้นด้วยSการเป็นสตริงว่าง แทรกที่ตำแหน่งบางส่วนของSสตริงของแบบฟอร์มdsโดยที่dเป็นตัวเลขที่ไม่ใช่ศูนย์และsเป็นสตริงdตัวอักษร ASCII ตัวพิมพ์เล็ก เราบอกว่าdsเป็นส่วนประกอบSของ ไปที่ขั้นตอนที่ 2 หรือหยุด งานของคุณคือการใช้สตริงเช่นอินพุตและส่งออกองค์ประกอบของมันตัดแบ่งเป็นสตริงเดียวในลำดับการปรากฏตัวของตัวเลขนำหน้าของพวกเขา เอาต์พุตจะต้องเป็นสตริงเดี่ยวและไม่มีตัวคั่นใด ๆ (รวมถึงบรรทัดใหม่) ระหว่างองค์ประกอบ คุณสามารถเลือกว่าสตริงอินพุตและเอาต์พุตมีเครื่องหมายคำพูดหรือไม่ โปรดทราบว่าอินพุตและเอาต์พุตจะไม่ว่างเปล่า ตัวอย่าง ลองสร้างสตริงด้วยกระบวนการข้างต้น โครงสร้างขององค์ประกอบจะถูกเน้นในผลลัพธ์สุดท้าย S = "" // Insert "3abc" S = "3abc" // Insert "2gh" after 'a' S = "3a2ghbc" // Insert "1x" before '3' S = "1x3a2ghbc" // Insert "3tty" after '3' …

13
รับค่าที่ใกล้เคียงที่สุดกับตัวเลข
ในกอล์ฟรหัสนี้คุณจะต้องได้รับหมายเลขที่ใกล้เคียงที่สุดจากรายการอื่นในรายการ ผลลัพธ์อาจเป็นจำนวนที่ใกล้เคียงที่สุดกับอินพุต ตัวอย่าง: value: (Input) 5 --- [1,2,3] --- 3 และโปรแกรมอาจทำงานกับตัวเลขติดลบ ตัวอย่าง: value: (Input) 0 --- [-1,3,5] --- -1 value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers) กฎ: ดังที่ได้กล่าวมาก่อนหน้านี้มันจะต้องทำงานกับตัวเลขติดลบ หากมีสองคำตอบ (ตัวอย่าง: 0 - [5, -5]) โปรแกรมจะให้ความสำคัญกับจำนวนต่ำสุด (-5) นี่คือรหัสกอล์ฟเพื่อให้รหัสที่สั้นที่สุดชนะ!

21
ลำดับตัวเลขจากมากไปน้อย
บทนำ 7ตัวอย่างเช่นลองมาจำนวน จากนั้นเราจะทำซ้ำสิ่งนี้และวางช่องว่าง 7 ช่องระหว่างนั้น เราได้รับสิ่งนี้: 7_______7 หลังจากนั้นเราจะลดจำนวนจนกว่าจะไม่มีช่องว่างเหลือ เราได้รับสิ่งต่อไปนี้สำหรับหมายเลข 7: 7_______7 6543210 จากนั้นเราก็รวมสองคนเข้าด้วยกันดังนั้น: 7_______7 6543210 becomes 765432107 นี้จะออกเอาท์พุทสำหรับN = 7 ดูง่ายใช่มั้ย ตอนนี้ขอใช้เวลาN = 12 เราแทรก 12 ช่องว่างอีกครั้งระหว่างตัวเลขทั้งสองซึ่งให้เรา: 12____________12 จากนั้นเราจะเริ่มลดลง: 12____________12 111098765432 และในที่สุดก็ทำให้เรา: 1211109876543212 ที่คุณสามารถดูส่วนถัดลงมาสิ้นสุดที่ 2 ไม่ได้ที่ 0 งาน รับจำนวนเต็มมากกว่า 1ส่งออกลำดับจากมากไปน้อยตามที่แสดงด้านบน กรณีทดสอบ Input Output 2 2102 3 32103 4 432104 5 …

3
กองกำลังที่มีความแม่นยำตามอำเภอใจ
เราจะดำเนินการหารสำหรับจำนวนเต็มขนาดใหญ่โดยพลการ นี่คือรหัสกอล์ฟ งานคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มความแม่นยำโดยพลการและหารกับพวกเขา ทราบว่าหลายสิ่งหลายอย่างที่อาจทำให้เรื่องนี้ง่ายมากที่ไม่ได้รับอนุญาตโปรดให้แน่ใจว่าจะอ่านผ่านข้อมูลจำเพาะ อินพุต คุณจะได้รับ 2 สิ่งเป็นอินพุต: สตริงฐาน 10 nหลักเรียกว่า อีกสตริงของฐาน 10 หลักเรียกว่า m สมมติว่าn>m>0หมายความว่าคุณจะไม่ถูกขอให้หารด้วยศูนย์ เอาท์พุต คุณจะเอาท์พุทสองตัวเลขQและRที่m * Q + R = nและ0 <= R <m ข้อมูลจำเพาะ การส่งข้อมูลของคุณควรใช้กับจำนวนเต็มขนาดใหญ่ตามอำเภอใจ (จำกัด โดยหน่วยความจำที่มีอยู่) คุณไม่สามารถใช้ไลบรารีภายนอก หากคุณต้องการไลบรารี่ภายนอกสำหรับ i / o คุณอาจถือว่าเป็นบิวด์อิน (ดูที่สิ่งต่าง ๆ เช่น iostream เป็นต้น) หากภาษาของคุณมีอยู่แล้วภายในซึ่งทำให้เรื่องนี้ไม่สำคัญคุณไม่สามารถใช้มันได้ ซึ่งรวมถึง (แต่ไม่ จำกัด เฉพาะ) ชนิดในตัวที่สามารถจัดการกับจำนวนเต็มที่มีความแม่นยำตามอำเภอใจ หากภาษาด้วยเหตุผลบางอย่างใช้จำนวนเต็มความแม่นยำโดยพลการฟังก์ชันนี้ไม่สามารถใช้เพื่อแสดงจำนวนเต็มที่ไม่สามารถเก็บไว้ใน 64 …

3
คำนี้เป็นภาษาอะไร
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดภาษาของคำที่กำหนด ภารกิจคือจดจำคำศัพท์ที่พบบ่อยที่สุด 5,000 คำใน 4 ภาษา: อังกฤษ เยอรมัน อิตาลี ฮังการี รายการคำสามารถพบได้ในที่เก็บ GitHub นี้ คุณได้รับอนุญาตให้ทำผิดใน 40% ของกรณีทดสอบที่ให้ไว้ นั่นคือคุณสามารถแยกหมวดหมู่ 8000 ของอินพุต 20000 รายละเอียด รายการมีเพียงคำที่มีตัวอักษรตัวเล็กa-zเช่นwon'tและmöchteจะไม่รวม มีคำไม่กี่คำที่ปรากฏในหลายภาษาซึ่งหมายความว่ารหัสของคุณไม่สามารถคาดเดาผลลัพธ์ได้อย่างถูกต้อง เพื่อความสะดวกคุณสามารถดาวน์โหลดกรณีทดสอบทั้งหมดเป็นรายการเดียว ในแต่ละบรรทัดตัวเลขจะระบุภาษาของคำนั้น ( 1สำหรับภาษาอังกฤษภาษา2เยอรมันภาษา3อิตาลีและ4ภาษาฮังการี) ช่องโหว่มาตรฐานไม่ได้รับอนุญาต การใช้คำจะแสดงข้อมูลที่คล้ายกันซึ่งเราจัดเตรียมให้โดยภาษาการเขียนโปรแกรมของคุณ อินพุต สตริงที่มีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น (az) ขึ้นบรรทัดใหม่ต่อท้ายเป็นตัวเลือก เอาท์พุต คุณสามารถจัดหมวดหมู่คำต่าง ๆ ได้ด้วยการให้ผลลัพธ์ที่แตกต่างและสม่ำเสมอ (เหมือนกันเสมอ) สำหรับแต่ละภาษา (เช่น1ภาษาอังกฤษภาษา2เยอรมันภาษา3อิตาลีและ4ภาษาฮังการี) นี่คือรหัสกอล์ฟเพื่อให้โปรแกรมหรือฟังก์ชันที่สั้นที่สุดชนะ รหัสคำถามกอล์ฟที่เกี่ยวข้อง: นี่เป็นคำศัพท์หรือไม่? รายการคำถูกนำมาจาก wiktionary.org และ 101languages.net

10
จัดเรียงฟังก์ชันอาร์กิวเมนต์ในบรรทัดของตนเอง
กำหนดอินพุตของสตริงที่แทนนิยามฟังก์ชันส่งออกสตริงพร้อมบรรทัดใหม่และช่องว่างที่แทรกเพื่อให้อาร์กิวเมนต์ของฟังก์ชันคั่นระหว่างบรรทัดใหม่และจัดตำแหน่ง สตริงอินพุตจะเป็นไปตามรูปแบบต่อไปนี้: ครั้งแรกก็จะเริ่มต้นด้วยคำนำหน้าซึ่งมักจะเป็นอย่างน้อยหนึ่งตัวยาวและไม่ได้มีการใด ๆ ,()ของตัวละคร วงเล็บเปิด ( () จะทำเครื่องหมายจุดเริ่มต้นของรายการอาร์กิวเมนต์ รายการข้อโต้แย้งที่เป็นศูนย์หรือมากกว่านั้นจะตามมา สิ่งเหล่านี้ถูกคั่นด้วยสตริง", "(เครื่องหมายจุลภาคและช่องว่าง) ไม่มีข้อโต้แย้งใด ๆ ,()จะมีของตัวละคร วงเล็บปิด ( )) จะทำเครื่องหมายจุดสิ้นสุดของรายการอาร์กิวเมนต์ สุดท้ายเป็น postfix อาจจะพบซึ่งเป็นศูนย์หรือมากกว่าตัวอักษรและ อาจ,()ประกอบด้วยตัวอักษร สตริงอินพุตจะประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น (ซึ่งหมายความว่าจะไม่มีการขึ้นบรรทัดใหม่) ผลลัพธ์จะต้อง: คำนำหน้าคัดลอกคำต่อคำและวงเล็บเปิด รายการอาร์กิวเมนต์เวลานี้คั่นด้วยไม่ใช่", "แต่ด้วยเครื่องหมายจุลภาคขึ้นบรรทัดใหม่และช่องว่างมากเท่าที่จำเป็นเพื่อจัดตำแหน่งอักขระแรกของแต่ละอาร์กิวเมนต์ในแนวตั้ง คำสั่ง paren และ postfix แบบปิด (ถ้ามี) คำต่อคำ เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ (รูปแบบ: อินพุตบรรทัดเดียวแล้วตามด้วยเอาต์พุตตามด้วยบรรทัดใหม่สองบรรทัด): def foo(bar, baz, quux): def foo(bar, baz, quux): …
16 code-golf  string 

3
ตรวจสอบระยะเวลาการทำงาน
บทนำ ที่นี่ในเยอรมนีเวลาในการพิจารณาคดีมีความเข้มงวดมาก หากคุณทำงาน 6 ชั่วโมงขึ้นไปต่อวันคุณต้องหยุดพักอย่างน้อย 30 นาที ถ้าคุณทำงาน 9 ชั่วโมงขึ้นไปคุณจะต้องหยุดพัก 45 นาที หากคุณทำงานน้อยกว่า 6 ชั่วโมงคุณไม่ต้องหยุดพัก แน่นอนว่าคุณสามารถแบ่งช่วงพักเหล่านั้นได้ แต่แต่ละส่วนจะต้องมีความยาวอย่างน้อย 15 นาที ความท้าทาย ในการท้าทายนี้คุณจะได้รับรายการช่วงเวลาทำงานและคุณต้องตรวจสอบว่ามีการหยุดพักเพียงพอหรือไม่โดยใช้กฎต่อไปนี้: อนุญาตwเป็นเวลาทำงานเป็นชั่วโมง: w < 6 -> No breaks needed 6 <= w < 9 -> 30 minute break needed w >= 9 -> 45 minute break needed นอกจากนี้การพักแต่ละครั้งจะต้องมีความยาวอย่างน้อย 15 นาที …

3
ป้ายกำกับสิ้นสุดตาย
เมื่อได้รับอินพุตของ "ถนน" ASCII อาร์ตเอาท์พุทถนนที่มีป้ายระบุจุดจบทั้งหมด นี่คือถนน: ########.....######..#..### #......#######....#..#..#.# #.##......#...#####..#..### #..#####..#....#..#######.# #......#...#####.....##...# #..###.#...#...###...#..### ##########.#..#..##..#.##.# ..#......#.######.#..#.#.#. ..#......#.#..#.#.#..#.#.#. ..######.###..##..######### นี่คือถนนที่มีจุดจบตายติดป้ายกำกับด้วยตัวอักษรX: ########.....######..X..### #......#######....#..X..#.# #.XX......X...X####..X..### #..XXXXX..X....#..#######.# #......X...#####.....##...# #..###.X...#...###...#..### ##########.#..X..##..#.##.X ..X......#.#XXXXX.#..#.#.X. ..X......#.#..X.X.#..#.#.X. ..XXXXXX.###..XX..######XXX ส่วนท้ายถูกกำหนดให้เป็นรูปแบบถนนใด ๆ ที่ล้อมรอบn รูปแบบของถนนอื่น ๆ อย่างน้อยn-1ซึ่งถือว่าเป็นจุดสิ้นสุดที่ตายแล้วตามกฎนี้ "Bordering" อยู่ในทิศทางที่สำคัญทั้งสี่ดังนั้นแผ่นที่มีพรมแดนติดกันจะไม่นับ กฎนี้ถูกนำไปใช้ซ้ำ ๆ เป็นที่สร้างขึ้นใหม่ปลายตายสามารถตัวเองมากขึ้นสร้างปลายตาย โปรดทราบว่าการเรียงต่อกันของถนนใด ๆ ที่มีการเรียงต่อกันนั้นจะถือว่าเป็นจุดสิ้นสุดในครั้งแรกที่มีการใช้กฎ อินพุตและเอาต์พุตอาจเป็นสตริงเดี่ยว (โดยมีบรรทัดคั่นด้วยอักขระใด ๆ ที่ไม่ใช่#หรือ.) หรืออาร์เรย์ / list / etc หากภาษาของคุณรองรับคุณอาจป้อนข้อมูลด้วยแต่ละบรรทัดเป็นอาร์กิวเมนต์ของฟังก์ชัน …

30
กรองและเพิ่ม
งาน งานง่ายมาก กำหนดสตริงไม่ว่างเปล่าที่มีตัวเลข , ตัวพิมพ์ใหญ่และพิมพ์เล็กตัวอักษร , การส่งออกผลรวมของตัวเลขที่ยังเหลืออยู่ ตัวอย่างเช่น: a1wAD5qw45REs5Fw4eRQR33wqe4WE การกรองจดหมายทั้งหมดจะส่งผลให้: 1 5 45 5 4 33 4 1 + 5 + 45 + 5 + 4 + 33 + 4 = 97ผลรวมของตัวเลขเหล่านี้คือ 97ดังนั้นการส่งออกจะเป็น กรณีทดสอบ a > 0 0 > 0 5 > 5 10 > 10 a0A > 0 1a1 …

12
ลบแถวที่ไม่ใช่ตัวเลขที่ระบุ
ในกรณีที่มีข้อสงสัยใด ๆ : Nan = Non-numeric datatypeสำหรับวัตถุประสงค์ของการท้าทายนี้ เขียนโปรแกรมหรือฟังก์ชั่นที่รับเมทริกซ์ / อาร์เรย์เป็นอินพุตเช่นเดียวกับรายการดัชนีคอลัมน์ Nanความท้าทายคือการลบแถวที่องค์ประกอบทั้งหมดในคอลัมน์ที่ระบุเป็น มันไม่สำคัญว่าองค์ประกอบอื่น ๆ ในแถวจะเป็นตัวเลขหรือไม่ ตัวอย่างต่อไปนี้หวังว่าจะทำให้ชัดเจนยิ่งขึ้น (เป็นดัชนีเดียว): Input array: 16 NaN 3 13 5 11 NaN 8 NaN 7 NaN 12 4 14 -15 1 Input column index: [1 3] Output array: 16 NaN 3 13 5 11 NaN 8 4 …

4
ตลาดหุ้นโง่
รับสตริงที่มีข้อมูลการลงทุนของหลาย ๆ คนค้นหาว่าพวกเขาบันทึกกำไร / ขาดทุนจำนวนเท่าใด สตริงมีเพียงตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเช่นนี้ AABaBbba ตัวอักษรแต่ละตัวแสดงถึงบุคคล - ตัวพิมพ์ใหญ่หมายถึงซื้อตัวอักษรตัวเล็กหมายถึงขาย ราคาหุ้นที่พวกเขาลงทุน (CGLF) เริ่มต้นที่ $ 50 หลังจากมีคนซื้อราคาก็สูงขึ้น 5% หลังจากมีคนขายราคาก็ลดลง 5% คุณต้องคิดออกว่าแต่ละคนที่เข้าร่วมทำ / แพ้จะต้องใช้เงินเท่าไหร่ หมายเหตุ: สตริงจะใช้ได้ตลอดไม่มีการขายโดยไม่ต้องซื้อครั้งแรก ทุกคนที่ซื้อหุ้นจะขายมันในที่สุด การคำนวณของคุณควรแม่นยำถึงตำแหน่งทศนิยมอย่างน้อย 6 ตำแหน่ง อย่างไรก็ตามคำตอบสุดท้ายควรปัดเศษเป็นทศนิยมสองตำแหน่ง กรณีทดสอบ: การป้อนข้อมูล: AABaBbba A: ซื้อ - $ 50 A: ซื้อ - $ 52.50 B: ซื้อ - $ 55.125 a: ขาย - …
16 code-golf 

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