คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

6
กินปลาขนาดกำลังเติบโต
คุณเป็นปลาในบ่อที่ต้องเอาตัวรอดจากการกินปลาอื่น คุณสามารถกินปลาที่มีขนาดเท่ากันหรือเล็กกว่าตัวคุณได้เท่านั้น คุณต้องสร้างโปรแกรมที่จะใช้ฝูงปลาที่เรียงลำดับ จากนี้คุณต้องคำนวณจำนวนปลาที่คุณสามารถกินได้และขนาดที่คุณจะเติบโต กราฟขนาด +--------------+--------------+--------------+--------------+ | | Amount extra | Total size 1 | Increase to | | Current size | needed for | fish | size | | | next size | | | +--------------+--------------+--------------+--------------+ | 1 | 4 | 4 | 2 | +--------------+--------------+--------------+--------------+ | 2 | …

4
คดเคี้ยวไปมาสตริงนี้โดยการยุบซ้ำ
รับสายงานของคุณคือการยุบลงในโครงสร้างเหมือนซิกแซกตามที่อธิบายไว้ด้านล่าง พับเป็นซิกแซก เราจะนำสตริง"Mississippi"เป็นตัวอย่าง: ก่อนอื่นให้ส่งคำนำหน้าที่ยาวที่สุดซึ่งประกอบด้วยอักขระที่ไม่ซ้ำกันเท่านั้น: Mis เมื่อคุณไปถึงอักขระที่ซ้ำกันตัวแรกCให้ละเว้นมันและนำหน้าคำนำหน้าที่ยาวที่สุดซึ่งประกอบด้วยอักขระที่ไม่ซ้ำกันของสตริงที่เหลือ ( issippi) ในแนวตั้งภายใต้การเกิดครั้งแรกของC : Mis i s ทำซ้ำกระบวนการสลับระหว่างความต่อเนื่องในแนวนอนและแนวตั้ง แต่ตอนนี้ต้องระวัง (ในขั้นตอนที่ 1) เพื่อดำเนินการแสดงผลในแนวนอนต่อจากการเกิดซ้ำของอักขระที่ซ้ำกันล่าสุดซึ่งไม่จำเป็นต้องเป็นอักขระสุดท้ายเช่นในกรณีนี้: Mis i sip ----- Mis i sip i กฎระเบียบ สตริงจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น แต่จะไม่มีช่องว่างใด ๆ คุณสามารถแข่งขันในภาษาการเขียนโปรแกรมใด ๆและสามารถรับอินพุตและให้ผลลัพธ์ผ่านวิธีมาตรฐานใด ๆและในรูปแบบที่สมเหตุสมผล1ในขณะที่การจดบันทึกว่าช่องโหว่เหล่านี้ถูกห้ามโดยค่าเริ่มต้น นี่คือโค้ดกอล์ฟดังนั้นการส่งที่สั้นที่สุด (เป็นไบต์) สำหรับทุกภาษาที่ชนะ 1อินพุต: สตริง / รายการอักขระ / ภาษาอื่นที่คุณใช้เพื่อแสดงสตริง เอาต์พุต: สตริงหลายบรรทัด, รายการของสตริงที่แทนบรรทัดหรือรายการของอักขระ / ความยาว -1 …

30
กู้คืนพลังงานจากพลังงานหลัก
ดูเหมือนว่าหลายคนต้องการที่จะมีสิ่งนี้ดังนั้นตอนนี้มันเป็นภาคต่อของความท้าทายนี้ ! คำนิยาม : พลังพิเศษเป็นจำนวนธรรมชาติที่สามารถแสดงในรูปแบบ p nโดยที่ p คือจำนวนเฉพาะและ n คือจำนวนธรรมชาติ ภารกิจ : รับพลังพิเศษหน้า n > 1 ให้ส่งคืนพลังงาน n ทดสอบ : input output 9 2 16 4 343 3 2687 1 59049 10 เกณฑ์การให้คะแนน : นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์

5
การดำเนินงานขั้นต่ำที่จะได้รับจากหมายเลขหนึ่งไปยังอีก
มานิยามภาษาง่าย ๆ ที่ทำงานกับค่า 8 บิตเดียว มันกำหนดการดำเนินงานสามระดับบิต (คำอธิบายรหัสถือว่าvalueตัวแปร8 บิต): !ลบล้างบิตที่สำคัญน้อยที่สุด ( value ^= 1) <ห่อกะซ้าย ( value = value << 1 | value >> 7) >ห่อขวากะ ( value = value >> 1 | value << 7) การป้อนข้อมูล: ตัวเลขสอง 8 บิตและข เนื่องจากมีขนาด 8 บิตคุณสามารถเลือกใช้เป็นอักขระได้ เอาท์พุท: วิธีที่สั้นที่สุดที่จะได้รับจาก a ถึง b โดยการปฏิบัติการทั้งสามที่กำหนดไว้ด้านบน คุณสามารถส่งคืนสตริงหรืออาร์เรย์ของอักขระหรือกำหนดค่าคงที่และแตกต่างกันสำหรับการดำเนินการแต่ละครั้งและส่งกลับอาร์เรย์ของค่าเหล่านั้น (ใช่คุณสามารถพูดความ<หมาย>และความ>หมาย<) …

27
รายการ PIN กุญแจที่ไม่ซ้ำ!
บทนำ ในการแชทส่วนตัวเพื่อนของฉันเพิ่งสะดุดกับระบบความปลอดภัยซึ่งมีข้อ จำกัด สองข้อต่อไปนี้ในพินที่ถูกต้อง: แต่ละหลักต้องไม่ซ้ำกัน (นั่นคือ "1" อาจปรากฏเพียงครั้งเดียวเท่านั้น) ลำดับของตัวเลขไม่สำคัญ ("1234" = "4321") ดังนั้นเพื่อแสดงให้เห็นว่าระบบกุญแจนี้แย่เพียงใดเรามาแจกแจง PIN ที่ถูกต้องทั้งหมด! อินพุต ข้อมูลที่คุณป้อนจะประกอบด้วยจำนวนเต็มบวกจำนวนเต็มเดียวซึ่งหมายถึงความยาวของ PIN เอาท์พุต ผลลัพธ์ของคุณประกอบด้วยรายการจำนวนเต็มหรือสตริงที่ไม่เป็นลบ * ซึ่งระบุ PIN ที่ถูกต้องทั้งหมดของความยาวที่กำหนด * สิ่งที่มนุษย์สามารถใช้เพื่อลองชุดค่าผสมทั้งหมดหากคุณต้องการพิมพ์ให้พวกเขา ซึ่งหมายความว่าชุดของชุดของตัวเลขและอาร์เรย์ของตัวเลขนั้นใช้ได้ ใครชนะ? นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ! มาตรฐานกฎระเบียบและช่องโหว่ใช้ คดีมุม พฤติกรรมเอาท์พุทไม่ได้กำหนดถ้าจำนวนเต็มมากกว่า 10 คือการป้อนข้อมูล การเรียงลำดับตัวเลขภายในแต่ละรายการเอาต์พุตไม่ได้ถูกกำหนดเนื่องจากรายการที่มีศูนย์ประกอบด้วยศูนย์ดังกล่าวจริงนั่นคือคุณไม่สามารถตัด "0123" ถึง "123" แต่ "1230", "1203" และ "1023" ทั้งหมดถูกต้อง ตามที่เป็น "0123" กรณีทดสอบ 1 [0,1,2,3,4,5,6,7,8,9] 2 …

4
สร้าง Portmantout!
พื้นหลัง สามปีที่ผ่านมาผู้ชายคนนี้ทอมเมอร์ฟี่ได้รับมันเข้ามาในหัวของเขาที่จะขยายความคิดของกระเป๋าหิ้วถ้อยคำในภาษาหนึ่งและเรียกนี้portmantout ( กระเป๋าหิ้วบวกทัวร์ [ภาษาฝรั่งเศสทั้งหมด ]) การกำหนดภาษาอังกฤษให้เป็นรายการจาก 108,709 คำเขาสามารถค้นหาลำดับ 611,820 ตัวอักษรโดยมีคุณสมบัติสองอย่างต่อไปนี้: คำภาษาอังกฤษทุกคำมีอยู่ในสตริง บางพื้นที่ใกล้เคียงที่มีตัวอักษรสองตัวที่ติดกันในสตริงเป็นคำภาษาอังกฤษ ต่อไปนี้เป็นลิงก์ไปยังหน้าซึ่งสามารถค้นหาพอร์ตนี้ (พร้อมด้วยคำอธิบายวิดีโอ) portmantout คุณสมบัติแรกของทั้งสองพอร์ตเป็นสิ่งที่เข้าใจได้ง่าย ครั้งที่สองอาจต้องการคำอธิบายบางอย่าง โดยทั่วไปคำจะต้องทับซ้อนกัน "golfcode" จะไม่ปรากฏในพอร์ตภาษาอังกฤษเนื่องจากไม่มีคำที่มี "fc" อย่างไรก็ตามคุณอาจพบ "codegolf" ใน portmantout สำหรับ "ego" เชื่อมช่องว่าง (และตัวอักษรอื่น ๆ ทั้งหมดอยู่ใน "code" หรือ "golf") งานของคุณ: เขียนโปรแกรมหรือฟังก์ชั่นที่รับรายการสตริงและส่งกลับพอร์ตใด ๆ ของรายการ รหัส Python 3นี้จะตรวจสอบพอร์ตพอร์ต กรณีทดสอบ รายการทั้งหมดไม่มีการเรียงลำดับ นั่นคือ, {"code", "ego", "golf"} -> "codegolf" …

26
ตัวเลขที่เท่ากันในอาร์เรย์ย่อย
รับอาร์เรย์ของตัวเลขด้วยlength >=3และlength % 3 == 0 [1, 2, 3, 4, ...] คุณจะแบ่งออกเป็นอาเรย์ย่อยที่มีความยาว 3 [[1, 2, 3], [4, 5, ...], [... และส่งคืนอาร์เรย์ด้วย [0] => จำนวนกรณีในอาร์เรย์ย่อยที่ตัวเลขทั้งหมดเท่ากัน [1] => ในกรณีที่ตัวเลขทั้งหมดใน sub-array ไม่เท่ากันจำนวนของ case ใน sub-array ที่มีเพียง 2 ตัวเลขเท่านั้น ตัวอย่างและกรณีทดสอบ: อินพุต: [2, 4, 2, 5, 5, 5, 4, 2, 1, 3, 3, 1]เอาต์พุต[1, 2] …

8
จำแนกภูมิภาคตามความชัน
คำนิยาม k THแหวนของตารางเมทริกซ์ขนาดNที่1 ≤ k ≤เพดาน (N / 2)เป็นรายการที่เกิดขึ้นจากองค์ประกอบของk THและ(N-k + 1) THแถวและคอลัมน์ แต่ไม่มีองค์ประกอบk-1แรกและสุดท้าย ตัวอย่าง: เมทริกซ์: 1 2 3 4 5 6 7 8 9 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 คั่นด้วยวงแหวน + + ------------------- | 1 2 3 4 …

7
การหมุนของต้นไม้ไบนารี
แผนผังการค้นหาแบบไบนารีที่สมดุลเป็นสิ่งจำเป็นในการรับประกันการค้นหาO (บันทึก n) (หรือการดำเนินการที่คล้ายกัน) ในสภาพแวดล้อมแบบไดนามิกที่มีการแทรกและสุ่มคีย์จำนวนมากและ / หรือลบต้นไม้อาจทำให้รายการเชื่อมโยงแย่ลงซึ่งน่ากลัวสำหรับการค้นหา ดังนั้นจึงมีหลายชนิดของต้นไม้ไบนารีสมดุลตัวเองที่ต่อต้านผลกระทบนี้ (เช่นต้นไม้ AVLหรือต้นไม้ splay ) ต้นไม้เหล่านี้ขึ้นอยู่กับการหมุนแบบต่าง ๆที่ปรับสมดุลของต้นไม้ ผลัด ในความท้าทายนี้เราจะดูเฉพาะการหมุนทางขวาเดียวการหมุน (การหมุนซ้ายจะสมมาตร) เช่นนี้: 5 3 / \ / \ 3 6 => 1 5 / \ / \ 1 4 4 6 หากมีใบใดใบ1หนึ่ง4หรือ6มีต้นไม้ย่อยทางซ้ายหรือขวาการหมุนก็จะทำให้พวกมันอยู่ตรงนั้น หากนี่เป็นทรีย่อยของต้นไม้ที่มีขนาดใหญ่ขึ้นเราเพียงแค่ "ตัดมันออก" ที่โหนด5และ "แนบใหม่" ต้นไม้ที่หมุน (ตอนนี้โหนด3) ไปยังโหนดนั้น ท้าทาย ให้แผนภูมิการค้นหาแบบไบนารี่1และคีย์หมุนทรีบนโหนดนั้นตามที่อธิบายไว้ข้างต้น 5ที่สำคัญที่ให้ไว้ในตัวอย่างข้างต้นจะเป็น กฎและ I …

12
มันเป็นชุดออกกำลังกายหรือไม่?
เราทุกคนรู้ว่าการออกกำลังกายจำนวนมากมีผลกับร่างกายคุณเพียงครึ่งเดียวดังนั้นคุณต้องทำสองครั้งครั้งละข้าง แบบฝึกหัดดังกล่าวมีสองแบบหนึ่งแบบด้านซ้ายและแบบฝึกหัดด้านขวา อย่างไรก็ตามไม่จำเป็นที่จะต้องดำเนินการทั้งสองอย่างต่อเนื่องตราบใดที่แบบฝึกหัดของทั้งสองฝ่ายอยู่ในลำดับเดียวกัน คุณอาจสลับไปมาระหว่างด้านต่าง ๆ ในโปรแกรมการออกกำลังกายของคุณได้ แต่มันก็ไม่มีเหตุผลที่จะเริ่มต้นการออกกำลังกายด้วยด้านใดด้านหนึ่งและด้านอื่น ๆ ท้าทาย ส่วนการออกกำลังกายคือรายการที่ไม่ใช่ศูนย์จำนวนเต็มที่ครึ่งหลังประกอบด้วยจำนวนเต็มของครึ่งแรกเมื่อตะกี้และในลำดับเดียวกันและสัญญาณของจำนวนเต็มในแต่ละครึ่งปีที่มีค่าเท่ากัน เข้าสู่ระบบในช่วงครึ่งแรกของการออกกำลังกายเป็นส่วนหนึ่งของมันด้านชั้นนำ ชุดออกกำลังกายเป็นศูนย์หรือออกกำลังกายมากขึ้นกับชิ้นส่วนชั้นนำด้านเดียวกันตัดแบ่งกัน รับรายการของเลขจำนวนเต็มที่ไม่ใช่ศูนย์เป็นอินพุตให้พิจารณาว่าเป็นชุดการออกกำลังกายหรือไม่ จำนวนเต็มไม่จำเป็นต้องซ้ำกัน ความยาวของรายการไม่จำเป็นต้องเท่ากับ วิธีการแก้ปัญหาของคุณอาจไม่ใช้ใด ๆ ของช่องโหว่มาตรฐาน คุณสามารถใช้ค่าที่สอดคล้องกันสองค่าสำหรับเอาต์พุต นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ ตัวอย่าง [-5, -1, -7, -6, -5, 5, 1, 7, 6, 5]เป็นตัวอย่างของส่วนการฝึก ครึ่งแรกคือ[-5, -1, -7, -6, -5]และครึ่งสุดท้ายคือ[5, 1, 7, 6, 5]ซึ่งเป็นจำนวนเต็มในครึ่งแรกเมื่อตะกี้ นอกจากนี้ครึ่งแรกของจำนวนเต็มทั้งหมดเป็นสัญญาณเดียวกัน -1ด้านชั้นนำส่วนการออกกำลังกายนี้คือ [3, 6, 5, -3, -6, -5, 1, 6, …

12
ค้นหารูปแบบฟีโบนักชี
คุณอาจคุ้นเคยกับลำดับฟีโบนักชีที่สองคำแรกเป็น0, 1(หรือบางครั้ง1, 1) และทุกคำหลังจากนั้นคือผลรวมของสองคำก่อนหน้า มันเริ่มเป็นแบบนี้: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... บางครั้งลำดับมีตัวเลขที่มีรูปแบบเฉพาะที่ฉันสนใจ: ความแตกต่างระหว่างคู่ของตัวเลขใด ๆ ที่อยู่ติดกันเหมือนกันกับคู่อื่น ๆ ยกตัวอย่างเช่นในลำดับที่เริ่มต้นด้วย0, 1คำที่ 18 987คือ และ9-8=1 8-7=1ฉันพอใจอย่างอ่อนโยน ท้าทาย ให้สองค่าเริ่มต้นF(0)และF(1)ส่งออกทุกตัวเลขในลำดับที่สร้างโดยF(n) = F(n-1) + F(n-2)ที่ตรงกับเกณฑ์ต่อไปนี้: ความแตกต่างระหว่างคู่ของตัวเลขใด ๆ ที่อยู่ติดกันจะเหมือนกับคู่อื่น ๆ มีความยาวอย่างน้อยสามหลัก (ตัวเลข 1 และ 2 หลักไม่น่าสนใจสำหรับรูปแบบนี้) อินพุต จำนวนเต็มสองจำนวนที่ไม่เป็นลบน้อยกว่า 10 ** 10 …

16
21 ทรงผมของคติ
21 ทรงผมของคติ กำหนดรายชื่อตัวเลขระหว่าง 1 ถึง 21 (หรือ 0 และ 20) เอาท์พุทการวาด "ต่อกัน" ของใบหน้าต่อไปนี้ ( ดูกฎสำหรับข้อมูลการเย็บ ): ___ ,,, ooo === +++ ### -*~*- (o o) (o o) (o o) (o o) (o o) (o o) (o o) ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo-ooO--(_)--Ooo- *** ||| _/7 ))) ((( xxx @__ (o o) (o o) (o …

10
กำหนดที่นั่งของสายการบิน
แรงบันดาลใจจากบทเรียน APL ของสัปดาห์ที่แล้ว ให้แผนที่ที่นั่งแบบตัวพิมพ์ใหญ่ 2 มิติและรายชื่อลูกค้า 1D ส่งคืนแผนผังที่นั่งและรายชื่อลูกค้า แต่ได้แก้ไขดังต่อไปนี้ (เพื่อระบุที่นั่งว่างและลูกค้าที่นั่ง): สำหรับตัวอักษรที่ไม่ซ้ำกันแต่ละตัวในรายการผู้โดยสารขาเข้าให้พิมพ์เล็กลงที่ตัวอักษรจำนวนมาก (หรือทั้งหมดหากมีไม่เพียงพอ) ในแผนผังที่นั่งจะเรียงจากซ้ายไปขวาบนลงล่าง สำหรับตัวอักษรที่ไม่ซ้ำกันแต่ละตัวในแผนผังที่นั่งให้พิมพ์ตัวอักษรเล็ก ๆ (หรือทั้งหมดถ้ามีไม่เพียงพอ) ในรายชื่อผู้โดยสารโดยเรียงจากซ้ายไปขวา แผนที่การป้อนข้อมูลที่นั่งมีเพียงช่องว่างและตัวอักษรพิมพ์ใหญ่จากชุดที่ { F, B, P, E} และอาจจะเป็น: แยกออกเป็นแถวด้วยตัวแบ่งบรรทัด รายการของสตริง เมทริกซ์ของอักขระตัวพิมพ์ใหญ่ ในรูปแบบอื่นที่เทียบเท่า รายชื่อลูกค้าอินพุตมีเพียงตัวอักษรพิมพ์ใหญ่จากชุดที่ { F, B, P, E} และอาจจะเป็น: สตริง รายการของตัวละคร ในรูปแบบอื่นที่เทียบเท่า แผนผังที่นั่งกลับต้องเหมือนกับอินพุตหนึ่งยกเว้นว่าตัวอักษรศูนย์หรือมากกว่านั้นถูกพับเป็นตัวพิมพ์เล็ก รายชื่อลูกค้าที่ส่งคืนจะต้องเหมือนกันกับหนึ่งอินพุตยกเว้นว่ามีการพับตัวอักษรศูนย์หรือมากกว่านั้นเป็นตัวพิมพ์เล็ก อนุญาตช่องว่างนำหน้าและต่อท้าย ตัวอย่าง(ฉบับย่อของเครื่องบินของ United) ERJ145 อินพุตแผนที่ที่นั่ง: P E E PP E …

8
เครื่องเข้ารหัสบาร์โค้ดรหัส 39
เขียนฟังก์ชั่นหรือโปรแกรมที่เข้ารหัสสตริงลงในรหัส 39บาร์โค้ดรูปแบบที่อักขระแต่ละตัวถูกเข้ารหัสเป็นห้าแท่งคั่นด้วยช่องว่างสี่ช่อง ทั้งสองแท่งและหนึ่งในช่องว่างมีความกว้างและอื่น ๆ ที่แคบ (10 * 4 รหัส) หรือสามของช่องว่างที่มีความกว้างและไม่มีแถบใด (4 รหัส) สิ่งนี้จะให้รหัสที่แตกต่างกัน 44 รหัสซึ่งเป็นรหัสที่สงวนไว้ซึ่งใช้เพื่อแสดงถึงจุดเริ่มต้นและจุดสิ้นสุดของสตริงที่เข้ารหัส ความท้าทาย อินพุตเป็นสตริงที่มีอักขระจากชุดเท่านั้น 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-. +/$% เอาต์พุตคือสตริงที่เข้ารหัสเป็นสตริงบาร์โค้ด ช่องว่างแคบและช่องว่างระหว่างอักขระเป็นช่องว่างเดียวและช่องว่างกว้างคือช่องว่างสามช่อง แถบแคบคือลำดับ UTF-8 สำหรับอักขระ Unicode "Full block", █, 0xE2 0x96 0x88และแถบกว้างคือลำดับ / ตัวอักษรไบต์สามตัว ( ███) รายการรหัสทั้งหมดคือ: Spaces 0100 0010 0001 1000 1011 1101 1110 0111 Bars 00000 + / $ …
16 code-golf 

9
การสะท้อนสตริงอาเรย์ระดับกลาง
เริ่มจากการกำหนดภาพสะท้อนของตัวละครในอาเรย์แบบสองมิติอีกครั้ง: กำหนดอาเรย์ 2-d อาร์เรย์ของตัวอักษรที่มีตัวอักษรตัวพิมพ์เล็กที่แตกต่างกันกำหนดสะท้อนของตัวอักษรในเมทริกซ์เป็นการแลกเปลี่ยนกับตัวละครตรงข้ามจากมันผ่านใจกลางของสแควร์ ดังนั้นภาพสะท้อนของตัวอักษรcใน abcde fghij klmno pqrst uvwxy จะส่งผลให้การกำหนดค่า abwde fghij klmno pqrst uvcxy เพราะcและwมีการเปลี่ยน ตัวอย่างเพิ่มเติมบางส่วน (ที่มีการกำหนดค่าดั้งเดิมเหมือนด้านบน): สะท้อนให้เห็นถึงตัวละครeจะฟอร์ม abcdu fghij klmno pqrst evwxy สะท้อนถึงตัวละครที่mจะทำให้ abcde fghij klmno pqrst uvwxy สะท้อนให้เห็นถึงตัวละครbจะฟอร์ม axcde fghij klmno pqrst uvwby ความท้าทาย รับอาร์เรย์ 2 มิติของตัวอักษรที่มีตัวอักษรตัวพิมพ์เล็กที่แตกต่างกันไปผ่านตัวละครแต่ละตัวในสตริงที่กำหนดและ "สะท้อน" ในเมทริกซ์ การชี้แจง: ตัวอักษรในสตริงมาจากa-zตัวอักษรมีเอกลักษณ์และอาร์เรย์ต้องมีอย่างน้อย 1x1 และสูงสุด 5x5 (เห็นได้ชัดเนื่องจากมีเพียง 26 …
16 code-golf  string 

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