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

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

23
ฉันเดินไปรอบ ๆ แมนฮัตตันไกลจากโรงแรมของฉันมากแค่ไหน?
เรื่องราวที่ไม่จำเป็นและซับซ้อน ฉันกำลังเดินไปรอบ ๆแมนฮัตตันบล็อกโดยบล็อกและเท้าของฉันเหนื่อยและต้องการกลับบ้าน การจราจรค่อนข้างแย่ แต่โชคดีที่ฉันรวยมากและมีเฮลิคอปเตอร์รอรับสายที่โรงแรม แต่ฉันต้องการให้พวกเขารู้ว่าเชื้อเพลิงเท่าไหร่ที่จะบรรจุสำหรับเที่ยวบินและเพื่อที่พวกเขาจำเป็นต้องรู้ระยะทางโดยตรงจากโรงแรม ฉันจำได้ว่าช่วงไหนที่ฉันเดินและสามารถบอกเส้นทางที่ฉันไปได้ ระยะทางนี้ต้องแม่นยำแม้ว่าถ้าพวกมันสั้นเกินไปเราจะไม่ทำให้มันกลับมานานเกินไปและฉันก็ซื้อเชื้อเพลิงฉันไม่สามารถใช้ คุณสามารถเขียนโปรแกรมเพื่อแปลงให้เป็นระยะทางที่พวกเขาจะต้องเดินทางด้วยเที่ยวบินของพวกเขาเพื่อดึงฉันได้หรือไม่? รายละเอียด: เขียนฟังก์ชั่นที่: ยอมรับรายการหรือสตริงของบล็อกที่มีการเดินซึ่งสัมพันธ์กับกริดแบบกำหนดเอง: U p, Dของตัวเอง, L eft และR ight สามารถเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก - เช่น ถ้ามันสั้นกว่าที่จะใช้uแทนที่จะUไปข้างหน้า ทิศทางที่ไม่ถูกต้องมีพฤติกรรมที่ไม่ได้กำหนดเช่น ทิศทางของXอาจทำให้เกิดความล้มเหลว ส่งคืนทศนิยม / ทศนิยม / คู่ที่เป็นสองเท่าของระยะทางตรงจากจุดกำเนิด สำหรับภาพประกอบและความกระจ่าง: การเดินทางของฉันจะได้อย่างง่ายดายเพียงแค่ได้รับการบันทึกเป็น"luluu..."หรือ['l','u','l'...]แต่มันจะต้องถูกบันทึกเป็นขึ้น, ลง, ซ้าย, ขวา
27 code-golf 

30
แปลงสตริงของอักขระไบนารีให้เทียบเท่า ASCII
ใช้สตริงของอักขระไบนารีคั่นด้วยเว้นวรรคและแปลงเป็นสตริง ASCII ตัวอย่างเช่น... 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 จะแปลงเป็น ... Hello World sสตริงไบนารีจะถูกเก็บไว้ในตัวแปรที่เรียกว่า นี่เป็นความท้าทายของนักกอล์ฟที่จะได้ทางออกที่สั้นที่สุด

15
Twinkle Twinkle Little Star
เขียนโปรแกรมเพื่อเล่นบทกวีภาษาอังกฤษยอดนิยม (ไฟล์นี้ได้รับอนุญาตภายใต้ Creative Commons Attribution-Share Alike 3.0 Unported License. คุณสมบัติ: Helix84ที่วิกิพีเดียภาษาอังกฤษ ; Blahedoที่วิกิพีเดียภาษาอังกฤษ ) บทความ Wikipedia บางบทความที่อาจมีประโยชน์: Twinkle Twinkle Little Star (มีคลิปเสียงของสิ่งที่โปรแกรมของคุณควรมีออกมา) สัญลักษณ์ดนตรีสมัยใหม่ (เพื่อเรียนรู้เกี่ยวกับสัญกรณ์ดนตรีที่ใช้ด้านบน) Note # Note frequency (เฮิร์ตซ์) (สูตรสำหรับคำนวณความถี่ของโน้ตแต่ละโน้ต) หลักเกณฑ์บางประการสำหรับการส่งของคุณ: โปรแกรมของคุณต้องใช้การ์ดเสียงของคอมพิวเตอร์ หากภาษาการเขียนโปรแกรมของคุณไม่มีการเข้าถึงฮาร์ดแวร์เสียงอย่างสะดวกโปรแกรมของคุณต้องสร้างไฟล์เอาต์พุตในรูปแบบมาตรฐานบางอย่างเช่น WAV หรือ MIDI โปรแกรมของคุณจะต้องสร้างผลลัพธ์ ตัวอย่างเช่นการฝังไฟล์ Ogg Vorbis จาก Wikipedia จะไม่ได้รับอนุญาต ต้องยอมรับคุณภาพเสียง อย่างน้อยที่สุดเพลงควรจะจดจำได้ง่าย ควรให้เสียงที่ดีเช่นกัน โฟกัสควรเป็นขนาดรหัสคุณภาพเสียงหรือทั้งสองอย่าง (อธิบายว่าข้อใดที่คุณตัดสินใจ) โซลูชั่นที่สง่างามก็ยอดเยี่ยมเช่นกัน มีความสุข! …
27 code-golf  music  audio 

19
แปลงเป็นและจากระบบตัวเลขแฟกทอเรียล
ระบบจำนวนปัจจัยที่เรียกว่า factoradic เป็นระบบเลข Radix ผสม แฟคทอเรียลกำหนดค่าสถานที่ของตัวเลข ในระบบนี้ตัวเลขที่ถูกต้องที่สุดอาจเป็น 0 หรือ 1 หลักขวาสุดที่สองสามารถเป็น 0, 1 หรือ 2 และอื่น ๆ ซึ่งหมายความว่าnตัวเลขตัวประกอบตัวเลขสามารถมีค่าสูงสุด(n + 1)!ได้ ตัวอย่างเช่นในการแปลงจำนวนตัวประกอบ24201ให้เป็นทศนิยมคุณต้องดำเนินการดังนี้ 2 * 5! = 240 4 * 4! = 96 2 * 3! = 12 0 * 2! = 0 1 * 1! = 1 240 + 96 + …

30
สร้างตัวอักษรที่มี 4 ตัวอักษรแต่ละตัว
โปรดทราบว่านี้ไม่ได้เช่นเดียวกับการพิมพ์ตัวอักษรสี่ครั้ง ภารกิจนี้คือการเขียนโปรแกรมเพื่อสร้างสำเนาของตัวอักษรภาษาอังกฤษสี่ตัวอักษรหนึ่งตัวต่อบรรทัดในเอาต์พุตมาตรฐาน: A A A A B B B B เป็นต้น ผลลัพธ์ควรมีบรรทัดใหม่หลังจากตัวอักษรแต่ละตัว ตัวอักษรตัวพิมพ์ใหญ่ที่ไม่ต้องการเอาต์พุตพิเศษ อย่างไรก็ตามตัวอักษรตัวพิมพ์เล็กและ / หรือช่องว่างเพิ่มเติมเป็นที่ยอมรับได้หากการใช้อักษรตัวใหญ่ / การปอกจะทำให้โซลูชันของคุณยาวขึ้น แก้ไขเพื่อเพิ่ม:การแก้ปัญหาจะต้องเสร็จสมบูรณ์เพียงพอที่จะดำเนินการ ฉันควรจะสามารถใช้ภาษาวางรหัสจากคำตอบและรับผลลัพธ์โดยไม่ต้องพิมพ์รหัสเพิ่มเติมใด ๆ คำถามข้างต้นเกี่ยวกับความครบถ้วนสมบูรณ์เกิดขึ้นในบริบทของโซลูชัน C แน่นอนว่าจะต้องมีกฎหรือระเบียบเกี่ยวกับเรื่องนี้ในเว็บไซต์เล่นกอล์ฟ? ถ้าเป็นเช่นนั้นฉันยินดีที่จะปฏิบัติตามแนวทางชุมชน แต่นี่คือของฉัน: สำหรับ C โดยเฉพาะคุณจะต้องรวม (และนับ) main(){... }รอบรหัสเนื่องจากจะไม่รวบรวมเป็นอย่างอื่น คำเตือนเพราะไม่มีอะไร#include <stdio.h>ดีตราบใดที่รหัสยังคงรวบรวม โดยทั่วไปแล้วภาษาที่คอมไพล์ต้องใช้หน่วยที่คอมไพล์ได้ นิพจน์เปลือยที่ให้ผลลัพธ์ที่ต้องการนั้นเป็นที่ยอมรับหากมีวิธีดำเนินการกับนิพจน์โดยตรง เช่นถ้าภาษามี REPL ดังนั้นคุณสามารถส่ง Haskell โดยไม่ต้องmain=ตราบเท่าที่มันใช้งานได้จริงตามที่เขียนไว้ในเช่นghciพรอมต์ แต่เนื่องจากนั่นหมายถึงการletประกาศของคุณมันอาจจะเป็นชัยชนะสุทธิที่ติดกับrunhaskellรูปแบบ ในทำนองเดียวกันawkสคริปต์ควรอยู่ในBEGIN(หรือENDด้วยการสันนิษฐานว่า stdin เชื่อมต่อกับ/dev/null) บล็อกเนื่องจากเราไม่ได้ประมวลผลอินพุตใด ๆ เป็นต้น

30
ผลรวมของจำนวนเฉพาะระหว่างช่วงที่กำหนด
เขียนรหัสที่สั้นที่สุดสำหรับการหาผลรวมของช่วงเวลาระหว่างaและb(รวม) อินพุต aและbสามารถนำมาจากบรรทัดคำสั่งหรือ stdin (ช่องว่างแยก) สมมติว่า1 <= a <= b <=10 8 ผลลัพธ์ เพียงพิมพ์ผลรวมด้วยอักขระบรรทัดใหม่ คะแนนโบนัส หากโปรแกรมยอมรับหลายช่วง (พิมพ์หนึ่งผลรวมในแต่ละบรรทัด) คุณจะได้รับคะแนนพิเศษ :)
27 code-golf  primes 

24
พิมพ์สตริงในอักขระที่ต่างกันให้น้อยที่สุดเท่าที่จะทำได้
ภารกิจนั้นง่าย: พิมพ์The quick brown fox jumps over the lazy dogโดยใช้อักขระที่ต่างกันเล็กน้อยในซอร์สโค้ดของคุณให้มากที่สุด print "The quick brown fox jumps over the lazy dog"มีคะแนน 29 ตัวอักษรเนื่องจากตัวอักษรตัวพิมพ์เล็กทั้งหมด 26 ตัวปรากฏขึ้นอย่างน้อยหนึ่งครั้งรวมทั้งตัวพิมพ์ใหญ่ T ช่องว่างและเครื่องหมายคำพูด ฉันแน่ใจว่าคุณสามารถสร้างสรรค์มากกว่านั้นได้! Brainfuck, Whitespace และภาษาที่คล้ายกัน (ตามดุลยพินิจของฉัน) ไม่ได้รับอนุญาต ตัวแบ่งบรรทัดนับเป็นอักขระตัวเดียว รหัสอาจยาวเท่าที่จำเป็น ฉันจะยอมรับวิธีแก้ปัญหาในวันที่ 21 เมษายน 23.59 น. EST ในกรณีที่เสมอคำตอบที่สั้นกว่าจะได้รับการยอมรับ

21
รายชื่อหมายเลขเฉพาะตัวแรก n อย่างมีประสิทธิภาพมากที่สุดและในรหัสที่สั้นที่สุด [ปิด]
กฎง่าย ๆ : First n primes (ไม่ใช่ primes ต่ำกว่าn ) ควรพิมพ์ไปยังเอาต์พุตมาตรฐานคั่นด้วย newlines (primes ควรสร้างขึ้นภายในโค้ด) primes ไม่สามารถสร้างได้โดยฟังก์ชัน inbuilt หรือผ่านทางไลบรารีเช่นการใช้ฟังก์ชัน inbuilt หรือไลบรารีเช่น prime = get_nth_prime (n), is_a_prime (ตัวเลข) หรือ factorlist = list_all_factors (number) จะไม่สร้างสรรค์มาก การให้คะแนน - สมมติว่าเรากำหนดคะแนน = f ([จำนวนตัวอักษรในรหัส]), O ( f (n)) เป็นความซับซ้อนของอัลกอริทึมของคุณโดยที่ n คือจำนวนช่วงเวลาที่พบ ตัวอย่างเช่นหากคุณมีรหัสชาร์ล 300 ตัวที่มีความซับซ้อนO (n ^ …

8
ทำให้เป็นก้อนกลมนี้! บทเรียนในโทนสีเทา…เอ่อ…สี…เอ่อ…อะไรก็ได้
เป็นแฟนตัวยงของลูกบาศก์ของ Rubik และศิลปะที่ยอดเยี่ยมฉันได้ทำงานร่วมกันทั้งสองเข้าด้วยกันเพื่อทำสิ่งที่ยอดเยี่ยมจริงๆ โดยทั่วไปการแก้ลูกบาศก์รูบิคขนาดเล็กเพื่อสร้างพิกเซลพื้นฐานในการก่อตัวของศิลปะลูกบาศก์รูบิค ตัวอย่างศิลปะดังกล่าวสามารถดูได้จากลิงก์นี้: http://google.com/search?q=rubik%27s+cube+art ตอนนี้จุดประสงค์ของ Code Golf นี้คือการสร้างรหัสที่ยอมรับภาพเป็นอินพุตแล้วแปลงในลักษณะดังต่อไปนี้: รูปภาพจะถูกลดขนาดไปเป็นสีเทาระดับเว็บที่ปลอดภัย เหตุผลหลังนี้เป็นเพราะเราต้องแยกจานสีเทาที่ปลอดภัยบนเว็บ (เช่น 000000, 333333, 666666, 999999, CCCCCC และ FFFFFF) อัลกอริทึมในวิธีการของการแปลงสีระดับสีเทามีอยู่ที่: http://en.wikipedia.org/wiki/Grayscale#Colorimetric_.28luminance-preserving.29_conversion_to_grayscaleควรที่คุณต้องการเพื่อการใช้งานที่เป็นแรงบันดาลใจ จากนั้นจะแสดงเฉดสีเทาเป็นสีที่เหมาะสม หากต้องการทำลายมันอย่างรวดเร็ว: 000000 จะหมายถึงสีน้ำเงินของรูบิค 333333 จะหมายถึงสีแดงของรูบิค 666666 จะหมายถึงสีเขียวของรูบิค 999999 จะหมายถึงสีส้มของรูบิค CCCCCC จะอ้างถึงสีเหลืองของรูบิค ฉันต้องการให้โค้ดผลลัพธ์ของคุณสามารถแสดงจากจานสีของภาพตรงกับสีของรูบิค วิธีการสองขั้นตอนจากการแปลงเป็นสีเทาแบบปลอดภัยบนเว็บแล้วเป็นจานสีของรูบิคที่สอดคล้องกันเป็นเพียงเพื่อให้คุณมีความคิดเกี่ยวกับตรรกะที่อยู่เบื้องหลังกระบวนการ แต่ถ้ามันง่ายกว่าสำหรับคุณที่จะทำเช่นนี้ ค่า RGB ที่แท้จริงสำหรับจานสีของรูบิคจะต้องสอดคล้องกับสิ่งต่อไปนี้: แดง: # C41E3A เขียว: # 009E60 สีน้ำเงิน: # 0051BA ส้ม: …

10
ไม่มีอะไรที่เหมือนกับเกมที่ดีของ ModTen
คำเตือน: ModTen เป็นเกมไพ่สวมซึ่งถูกสร้างขึ้นเพื่อวัตถุประสงค์เดียวของการท้าทายนี้ กฎของ ModTen ModTenเล่นด้วยสำรับไพ่มาตรฐาน 52 ใบ เนื่องจากกฎทั้งหมดยังไม่ถูกคิดค้นเราจะมุ่งเน้นไปที่การจัดอันดับมือโดยเฉพาะ มือที่ชนะใน ModTen กราฟิกจากวิกิพีเดีย ค่าบัตร บัตรมีค่าดังต่อไปนี้: 2ถึง9 : มูลค่าที่คุ้มค่าของพวกเขา สิบ : 0 จุด แจ็ค : 3 คะแนน ราชินีหรือราชา : 8 คะแนน Ace : 9 คะแนน คุณค่าของมือ ModTenมือทำจากไพ่สองใบ ค่าฐานของไพ่นั้นได้มาจากการคูณค่าของไพ่ทั้งคู่เข้าด้วยกันและรักษาตัวเลขสุดท้ายเท่านั้น (เช่นการใช้โมดูโล 10) ยกตัวอย่างเช่นค่าของ7 ♥ - Q ♣คือ " 666 " เพราะ( 7 × 8 …

30
หมายเลขที่ไม่ซ้ำกันที่เล็กที่สุด KoTH
สร้างบอทเพื่อเลือกหมายเลขเฉพาะที่เล็กที่สุด (จากการทดลองทางจิตวิทยาฉันได้ยินมาหลายปีแล้ว แต่ไม่สามารถติดตามได้อีก) กฎระเบียบ แต่ละเกมจะประกอบไปด้วยบอทที่สุ่มเลือก 10 ตัวซึ่งเล่นได้ 1,000 รอบ แต่ละรอบบอตทั้งหมดจะเลือกจำนวนเต็มตั้งแต่ 1 ถึง 10 (รวม) บอตใด ๆ ที่เลือกค่าเดียวกันจะถูกแยกออกและบอทที่เหลือซึ่งมีค่าน้อยที่สุดจะได้รับแต้ม ในกรณีที่ไม่มีบอทเลือกค่าที่ไม่ซ้ำกันจะไม่มีการให้คะแนน ในตอนท้ายของรอบ 1,000, บอทที่มีคะแนนมากที่สุด (หรือบอททั้งหมดที่ผูกด้วยคะแนนมากที่สุด) ชนะเกม ทัวร์นาเมนต์จะมีอายุ 200 * เกม (จำนวนผู้เล่น) บอทที่มีเปอร์เซ็นต์การชนะสูงสุดจะเป็นผู้ชนะการแข่งขัน ข้อมูลจำเพาะ บอทจะต้องเป็นงูใหญ่ 3 ชั้นและต้องใช้สองวิธี: และselect บอทจะถูกสร้างขึ้นด้วยดัชนี ไม่ผ่านการขัดแย้งและส่งกลับทางเลือกของบ็อตสำหรับรอบปัจจุบัน ถูกส่งผ่านรายการตัวเลือกที่ทำโดยแต่ละบ็อตในรอบก่อนหน้าupdate select update ตัวอย่าง class Lowball(object): def __init__(self, index): # Initial setup happens here. …

30
สุ่มเลือกตัวละครแบบ plinko
มาดูกันว่าภาษาที่คุณเลือกนั้นดีแค่ไหนในการสุ่มเลือก ได้รับ 4 ตัวอักษรA, B, CและDหรือสตริงของ 4 ตัวอักษรABCD เป็น inputหนึ่งเอาท์พุทของตัวละครที่มีความน่าจะเป็นต่อไปนี้: A ควรมีโอกาสเลือก 1/8 (12.5%) B ควรมีโอกาส 3/8 (37.5%) ที่จะเลือก C ควรมีโอกาส 2/8 (25%) ที่จะเลือก D ควรมีโอกาส 2/8 (25%) ที่จะเลือก นี่สอดคล้องกับเค้าโครงเครื่องPlinkoต่อไปนี้: ^ ^ ^ ^ ^ ^ A B \ / ^ C D คำตอบของคุณจะต้องพยายามอย่างแท้จริงในการเคารพความน่าจะเป็นที่อธิบายไว้ คำอธิบายที่เหมาะสมของวิธีคำนวณความน่าจะเป็นในคำตอบของคุณ (และทำไมพวกเขาจึงเคารพรายละเอียดโดยไม่คำนึงถึงปัญหาการสุ่มหลอกและปัญหาจำนวนมาก) ก็เพียงพอแล้ว เกณฑ์การให้คะแนน นี่คือโค้ดกอล์ฟที่มีจำนวนน้อยที่สุดในแต่ละภาษาที่ชนะ!

22
ก่อสร้างตามธรรมชาติ
ตัวเลขธรรมชาติรวมถึง 0 ถูกกำหนดอย่างเป็นทางการเป็นชุดด้วยวิธีดังต่อไปนี้ : หมายเลข 0 ถูกกำหนดเป็นชุดว่าง {} สำหรับn ≥ 0 ตัวเลขn +1 หมายถึงn ∪ { n } ดังนั้นn = {0, 1, ... , n -1} หมายเลขแรกที่กำหนดโดยโพรซีเดอร์นี้คือ: 0 = {} 1 = {{}} 2 = {{}, {{}}} 3 = {{}, {{}}, {{}, {{}}}} ท้าทาย กำหนดnเอาท์พุทการเป็นตัวแทนของมันเป็นชุด กฎระเบียบ การส่งออกอย่างต่อเนื่องสามารถใช้ยึดตัวละครเช่น{}, [], หรือ() ไม่อนุญาตให้ใช้<>ตัวอักษร …

30
วันจันทร์สุดท้าย
วันจันทร์ที่ 31 ตุลาคมเป็นวันฮาโลวีน และฉันก็คิด - ฉันสงสัยว่าเดือนอื่น ๆ ที่มีวันสุดท้ายของเดือนก็เป็นวันจันทร์เช่นกัน? อินพุต เป็นจำนวนเต็มบวกในรูปแบบที่สะดวกใด ๆ10000 > y > 0ที่เป็นตัวแทนของปี อินพุตสามารถเพิ่มด้วยศูนย์ (เช่น0025สำหรับปี25) หากต้องการ เอาท์พุต รายการของเดือนในปีนั้นซึ่งวันสุดท้ายของเดือนคือวันจันทร์ นี่อาจเป็นชื่อเดือน (เช่น, January, March, October), หรือชื่อย่อ ( Jan, Mar, Oct) หรือตัวเลข ( 1, 3, 10), เป็นบรรทัดแยกหรือรายการหรือคั่น, ฯลฯ ตราบใดที่มันไม่มีความชัดเจนต่อผู้อ่าน รูปแบบผลลัพธ์ต้องสอดคล้องกัน: สำหรับอินพุตทุกปี (หมายถึงคุณไม่สามารถส่งออกชื่อเดือนสำหรับอินพุตบางส่วนและหมายเลขเดือนสำหรับอินพุตอื่น ๆ ) เช่นเดียวกับที่สอดคล้องต่อการส่งออก (หมายถึงคุณไม่สามารถส่งออก1สำหรับJanuaryในการส่งออกเช่นเดียวกับJulสำหรับJuly) โดยทั่วไปเลือกรูปแบบหนึ่งและติดกับมัน กฎระเบียบ สมมติปฏิทินเกรกอเรียนสำหรับอินพุต / y …
27 code-golf  date 

30
คำนวณฟังก์ชั่น totient ของออยเลอร์
พื้นหลัง ออยเลอร์totient ฟังก์ชั่นφ(n)ถูกกำหนดให้เป็นจำนวนตัวเลขทั้งหมดน้อยกว่าหรือเท่ากับnว่ามีความสำคัญในการnที่เป็นจำนวนของค่าเป็นไปได้ของxในที่0 < x <= n gcd(n, x) == 1เราได้มี ไม่กี่totient - เกี่ยวข้องกับความท้าทาย ก่อน แต่ไม่เคยหนึ่งซึ่งเป็นเพียงการคำนวณมัน การทำแผนที่ของ totient ฟังก์ชันบนตัวเลขทั้งหมดเป็นOEIS A000010 ท้าทาย ได้รับจำนวนเต็มคำนวณn > 0 φ(n)คุณสามารถรับอินพุตผ่านอาร์กิวเมนต์บรรทัดคำสั่งอินพุตมาตรฐานอาร์กิวเมนต์ฟังก์ชันหรืออะไรก็ได้ที่สมเหตุสมผล คุณสามารถให้เอาต์พุตผ่านเอาต์พุตมาตรฐานค่าส่งคืนหรือสิ่งอื่นที่เหมาะสม ฟังก์ชั่นที่ไม่ระบุชื่อเป็นที่ยอมรับ คุณอาจสมมติว่าการป้อนข้อมูลจะไม่ล้นวิธีธรรมชาติของการจัดเก็บจำนวนเต็มเช่นintใน C แต่คุณต้องรองรับการป้อนข้อมูลได้ถึง 255 หากภาษาของคุณมีฟังก์ชั่น Totient ในตัวคุณไม่สามารถใช้งานได้ ตัวอย่าง φ(1) => 1 φ(2) => 1 φ(3) => 2 φ(8) => 4 φ(9) => 6 …

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