คำถามติดแท็ก permutations

การเรียงสับเปลี่ยนเป็นการเรียงลำดับรายการวัตถุบางรายการโดยเฉพาะ ปัญหาที่ติดแท็กด้วยการเปลี่ยนแปลงมักเกี่ยวข้องกับการค้นหาหรือสร้างการเรียงสับเปลี่ยน

7
การพิมพ์ด้วยปุ่มสัญญาณรบกวน
เพื่อนของคุณไม่ดีกับคอมพิวเตอร์ดังนั้นเป็นเรื่องตลกในทางปฏิบัติใครบางคนกวนตัวอักษร (az) บนแป้นพิมพ์ของเขา เมื่อเขานั่งลงและพยายามพิมพ์ชื่อของเขาดูที่แป้นพิมพ์เขาก็ตระหนักว่าตัวอักษรดังกล่าวมีสัญญาณรบกวนและขอความช่วยเหลือจากคุณ คุณฉลาดเพื่อให้คุณรู้ว่าถ้าเขาพิมพ์ชื่อของเขาและจากนั้นพิมพ์ซ้ำสิ่งที่เกิดขึ้นบนหน้าจอแทนชื่อของเขาเขาจะประสบความสำเร็จในการป้อนชื่อของเขาในที่สุด คุณยังใจดีและจัดเรียงกุญแจใหม่อีกครั้ง แต่ต้องการทราบว่าจะต้องใช้เวลากี่ครั้งในการประสบความสำเร็จ งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ให้ตัวอักษรสับและชื่อของเพื่อนคำนวณจำนวนรอบ รายละเอียดการป้อนข้อมูล: มีการให้สองสตริงเป็นอินพุตในโครงสร้างที่สะดวกสำหรับภาษาของคุณ สตริงแรกคือรายการของตัวอักษรตัวพิมพ์เล็กใหม่ตามลำดับตัวอักษรของตัวอักษรเก่า (อักขระตัวแรกคือตัวอักษรที่อยู่ที่ตำแหน่งตัวอักษรตัวaสุดท้ายอยู่ที่ตำแหน่งz) การเปลี่ยนแปลงบางอย่างจะเกิดขึ้นในสตริงเสมอ สตริงที่สองคือชื่อ มันสามารถมีตัวอักษร ASCII ที่พิมพ์ได้ใด ๆ แต่ตัวอักษรตัวอักษรบนและล่างจะถูกสับถ้ามี ชื่อตัวเองอาจไม่ได้สับที่อัล รายละเอียดผลลัพธ์: เอาท์พุทเป็นจำนวนเต็มเดียวจำนวนการเลี้ยวที่ต้องการน้อยที่สุด ขึ้นบรรทัดใหม่เป็นตัวเลือก ตัวอย่าง: อินพุต: 'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'(d, e, f เปลี่ยนตำแหน่ง) เอาต์พุต: 3(ชื่อที่แสดงคือ: Mr. John Fod=> Mr. John Eof=> Mr. John Doe) อินพุต: 'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'( รหัส ROT13 …


4
เห็นภาพการหารยาวด้วยศิลปะ ASCII
เขียนโปรแกรมที่แสดงภาพส่วนที่ยาวด้วย ASCII art อินพุตประกอบด้วยจำนวนเต็มสองจำนวนตัวเศษและส่วนโดยใช้รูปแบบอินพุตที่คุณเลือก ตัวอย่าง: 1234 ÷ 56: 22 ---- 56|1234 112 --- 114 112 --- 2 1002012 ÷ 12: 83501 ------- 12|1002012 96 --- 42 36 -- 60 60 -- 12 12 -- 0 ÷ 35 0 - 35|0 กฎ: การใช้งานของผู้ประกอบการส่วนการเขียนโปรแกรมภาษาที่จะได้รับอนุญาต อนุญาตให้ใช้จำนวนเต็มขนาดใหญ่ได้ เพื่อความมั่นคง: หากความฉลาดเป็นศูนย์ให้พิมพ์ศูนย์เดียวที่ท้ายกระดานดำน้ำ หากส่วนที่เหลือเป็นศูนย์อย่าพิมพ์ อย่าพิมพ์เลขศูนย์นำหน้าบนตัวเลขใด ๆ ขึ้นบรรทัดใหม่มากเกินไปที่ส่วนท้ายและช่องว่างต่อท้ายไปทางขวาจะได้รับอนุญาต การแก้ปัญหาด้วยตัวละครน้อยที่สุดชนะ …

5
หมาป่าและไก่
มีแม่น้ำและมีหมาป่าและไก่อยู่อีกฟากหนึ่งของแม่น้ำ พวกเขามีแพและพวกเขาทั้งหมดต้องไปที่อีกด้านหนึ่ง อย่างไรก็ตามแพไม่สามารถเดินทางได้ด้วยตัวเอง แพจะจมถ้ามีสัตว์มากกว่าสองตัวอยู่บนมัน ไม่มีสัตว์ชนิดใดที่ต้องการเปียกเพราะแม่น้ำเย็นและสกปรก ไม่มีสัตว์ชนิดใดสามารถกระโดดหรือบินข้ามแม่น้ำได้ นอกจากนี้หากมีไก่อยู่ด้านหนึ่งก็จะไม่มีหมาป่าอยู่ข้างนั้นมากกว่าที่มีไก่อยู่ข้างนั้น - หมาป่าก็จะตัดสินใจกินไก่ ซึ่งหมายความว่าคุณไม่สามารถนำหมาป่าสองตัวขึ้นไปบนแพด้วยไก่หนึ่งตัว งานของคุณคือการสร้างโปรแกรม / ฟังก์ชั่นที่ใช้จำนวนหมาป่าและไก่จำนวนหนึ่ง (มากกว่าหรือเท่ากับจำนวนหมาป่า) เป็นอินพุตและหาจำนวนครั้งที่แพที่เล็กที่สุดจะเคลื่อนที่ข้ามแม่น้ำ หากไม่สามารถทำงานได้โปรแกรม / ฟังก์ชั่นควรแสดงผล / ส่งคืนสตริงว่าง จากนั้นจะพิมพ์ / ส่งคืนหนึ่งวิธีสำหรับวิธีนี้ในวิธีต่อไปนี้: W if a wolf crosses the river on its own C if a chicken crosses the river on its own CW if a chicken and a wolf …

9
ซ่อนสิ่งปลูกสร้าง
เวอร์ชั่นสั้นของChallenge ตึกระฟ้า งาน เมื่อกำหนดความสูงของอาคารและจำนวนเต็มบวกkให้ค้นหาการเรียงสับเปลี่ยนทั้งหมด (โดยไม่ซ้ำกัน) ของความสูงดังกล่าวเพื่อให้kอาคารสามารถมองเห็นได้ สิ่งปลูกสร้างใด ๆ จะซ่อนสิ่งปลูกสร้างที่เตี้ยกว่าหรือเท่ากับ รูปแบบใด ๆ สำหรับอินพุตและเอาต์พุตนั้นถูกต้อง อาร์เรย์อินพุตจะไม่ว่างเปล่า ในกรณีที่เป็นไปไม่ได้ที่จะเห็นอาคารหลายหลังให้ส่งสิ่งที่ไม่สามารถตอบได้ แต่ไม่มีข้อผิดพลาด ตัวอย่าง: (ความยาวของเอาต์พุตถูกแสดงสำหรับเอาต์พุตที่ยาวมาก แต่เอาต์พุตของคุณควรเป็นพีชคณิตที่เป็นไปได้ทั้งหมด) input:[1,2,3,4,5],2 output: 50 input:[5,5,5,5,5,5,5,5],2 output: [] input:[1,2,2],2 output:[(1,2,2)] Seeing from the left, exactly 2 buildings are visible. input:[1,7,4],2 output:[(4, 7, 1), (1, 7, 4), (4, 1, 7)] input:[1,2,3,4,5,6,7,8,9],4 output:67284 input:[34,55,11,22],1 output:[(55, 34, …

30
สร้างโปรแกรม Parrot
รับอินพุต, เอาต์พุตที่อินพุตตามด้วย newline ไม่รู้จบ ข้อมูลที่ป้อนจะเป็นสตริงที่ประกอบด้วยอักขระ ASCII ที่พิมพ์ได้ ( 0x20-0x7E) และบรรทัดใหม่ ( 0x0A) หากอินพุตมีความยาว 0 ให้ส่งบรรทัดใหม่อย่างไม่สิ้นสุด นี่คือโค้ดกอล์ฟที่มีจำนวนน้อยที่สุดในแต่ละภาษาที่ชนะ!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

15
เครื่อง Enigma (ตำรวจ)
สำหรับโพสต์ของโจรเครื่อง Cheapo Enigma (โจร) การส่งของตำรวจจะประกอบด้วยโปรแกรม / ฟังก์ชั่นที่ยอมรับข้อมูลหนึ่งไบต์และส่งกลับข้อมูลหนึ่งไบต์ ทุกอินพุตที่เป็นไปได้ต้องสร้างเอาต์พุตเฉพาะ (ในคำอื่น ๆ ฟังก์ชั่นของคุณจะต้อง bijective) โจรจะพยายามสร้างฟังก์ชันผกผันของคุณโดยใช้รหัสสั้นที่สุด ดังนั้นวัตถุประสงค์ของคุณคือทำให้การทำงานของคุณยากที่จะกลับด้าน คุณไม่สามารถใช้บิวด์อินที่มีวัตถุประสงค์เพื่อการแฮชหรือการเข้ารหัส แต่เพียงผู้เดียว จำนวนไบต์ของคุณต้องไม่เกิน 64 ไบต์ โซลูชั่น 0 ไบต์ไม่มีสิทธิ์ชนะ รูปแบบอินพุต / เอาต์พุต 8 บิต (0 หรือ 1) หรือจำนวนเต็ม 10 ฐานในช่วง 1-256, 0-255 หรือ -128 ถึง 127 สามารถใช้ I / O มาตรฐานหรือไฟล์ I / O ฟังก์ชั่นยังสามารถคืนค่าเป็นเอาท์พุท อินพุตและเอาต์พุตควรอยู่ในช่วงเดียวกัน (ไบนารี, …

2
ตรงกับการเรียงสับเปลี่ยน!
ความท้าทายของคุณคือการสร้าง regex ที่ตรงกับการเปลี่ยนแปลงสตริงของตัวเองทุกอย่างและไม่มีอะไรอื่น การแข่งขันจะต้องเป็นกรณี ๆ ไป ตัวอย่างเช่นถ้า regex ของคุณคือ: ABC มันควรจะจับคู่ (และตรงเท่านั้น) สตริงเหล่านี้: ABC ACB BAC BCA CAB CBA ไม่ควรจับคู่สิ่งที่ต้องการ: AABC (contains an extra A) ABCD (contains an extra D) AC (no B) AAA (no B and C, extra 2 A's) abc (case-sensitive) กฎ: คุณได้รับอนุญาตให้ใช้รสชาติของ regex ที่คุณชอบ ช่องโหว่มาตรฐานใช้ คุณต้องมีอักขระอย่างน้อยสองตัวในรหัสของคุณ นั่นหมายถึงวิธีแก้ปัญหาเช่น1นั้นไม่ถูกต้อง …

3
โทเค็นภาษาสแต็กตาม
ฉันได้รับการทำงานในอีกภาษากอล์ฟสแต็คที่เรียกว่าStackgoat ในการท้าทายนี้คุณจะต้องเขียน Tokenizer สำหรับ Stackgoat (หรือภาษาที่ใช้กองซ้อนทั่วไป) ตัวอย่าง "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] สเปค สามประเภทที่คุณต้องจัดการคือ: เงื่อนไขอะไรภายใน"" ตัวเลขลำดับของตัวเลขใด ๆ ผู้ประกอบการตัวละครอื่น ๆ นอกเหนือจากช่องว่าง ช่องว่างจะถูกละเว้นเป็นหลักเว้นแต่ว่ามันจะอยู่ในสตริงหรือแยกตัวเลขสองตัว สตริง / อักขระถ่าน: สตริงถูกคั่นด้วย a "และเมื่อ\พบa อักขระตัวถัดไปควรถูกหลีกเลี่ยง …
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

2
อาร์เรย์สามารถถูกปลดได้หรือไม่?
พื้นหลัง ตัวจัดการการ์ดที่มีทักษะมากมีความสามารถในเทคนิคที่พวกเขาตัดดาดฟ้าอย่างสมบูรณ์แบบครึ่งแล้วสอดแทรกการ์ดอย่างสมบูรณ์แบบ หากพวกเขาเริ่มต้นด้วยสำรับเรียงและดำเนินการเทคนิคนี้ไม่มีที่ติ 52 ครั้งในแถวที่ดาดฟ้าจะถูกเรียกคืนเพื่อการเรียงลำดับ ความท้าทายของคุณคือการใช้สำรับไพ่จำนวนเต็มและตรวจสอบว่าสามารถเรียงลำดับได้ด้วยการใช้ไพ่ Sharo แบบ Faro หรือไม่ คำนิยาม ในทางคณิตศาสตร์ Faro shuffle เป็นการเปลี่ยนแปลงขององค์ประกอบ2 n (สำหรับจำนวนเต็มบวกn ) ซึ่งใช้องค์ประกอบในตำแหน่งi (1 ดัชนี) ไปยังตำแหน่ง 2 i (mod 2 n +1) นอกจากนี้เรายังต้องการจัดการรายการที่มีความยาวคี่ดังนั้นในกรณีนี้เพียงเพิ่มองค์ประกอบหนึ่งไปยังส่วนท้ายของรายการ (Joker ถ้าคุณมีประโยชน์) และ Faro สลับรายการใหม่ตามข้างบน แต่ไม่ต้องสนใจ องค์ประกอบหุ่นที่เพิ่มเข้ามาเมื่อตรวจสอบคำสั่งของรายการ เป้าหมาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับรายการจำนวนเต็มและส่งคืนหรือส่งออกความจริงหากจำนวนของแฟโร Shuffles จำนวนหนึ่งจะทำให้รายการนั้นเรียงลำดับตามลำดับที่ไม่ลดน้อยลง (แม้ว่าจำนวนนั้นจะเป็นศูนย์ มิฉะนั้นส่งคืนหรือส่งออกเป็นเท็จ ตัวอย่าง [1,1,2,3,5,8,13,21] => True [5,1,8,1,13,2,21,3] => True [9,36,5,34,2,10,1] …

4
สั่งซื้อ 40 แท่ง
เรามีความกว้าง 40 แท่งที่เหมือนกัน แต่มีความสูงต่างกัน มีวิธีใดบ้างที่สามารถจัดวางไว้ติดกันเพื่อที่ว่าเมื่อเรามองจากด้านขวาเราเห็น 10 แท่งและเมื่อมองจากซ้ายเราจะเห็นว่ามี 10 แท่งแน่นอน ตัวอย่างเช่นการสั่งซื้อคือ: แท่งสีดำซ่อนอยู่แท่งสีแดงเป็นแท่งที่คุณสามารถมองเห็นได้จากด้านซ้ายแท่งสีฟ้าเป็นแท่งที่คุณสามารถมองเห็นได้จากด้านขวาและสีม่วง (เช่นแท่งที่ยาวที่สุด) คือแท่งที่สามารถมองเห็นได้ จากทั้งสองด้าน ในกรณีทดสอบ: ถ้าเรามีจำนวนการเรียง 3 แท่งเพื่อดู 2 จากซ้ายและ 2 จากขวาคือ 2 ถ้าเรามีจำนวนการเรียง 5 แท่งเพื่อดู 3 จากซ้ายและ 3 จากขวาคือ 6 หากเรามีจำนวนการสั่งไม้ 10 ครั้งเพื่อดู 4 จากซ้ายและ 4 จากขวาคือ 90720

6
สลายการเปลี่ยนรูปเป็นวัฏจักร
มีทฤษฎีบทที่รู้จักกันดีว่าคือการเปลี่ยนแปลงใด ๆ ที่สามารถย่อยสลายเป็นชุดของรอบ งานของคุณคือการเขียนโปรแกรมที่สั้นที่สุดเท่าที่จะทำได้ การป้อนข้อมูล: สองเส้น ตัวแรกประกอบด้วยตัวเลขNส่วนที่สองมีNจำนวนเต็มชัดเจนในช่วง[0,N-1]คั่นด้วยช่องว่าง จำนวนเต็มเหล่านี้แสดงถึงการเปลี่ยนแปลงของNองค์ประกอบ เอาท์พุท: หนึ่งบรรทัดสำหรับแต่ละรอบในการเปลี่ยนแปลง แต่ละบรรทัดควรเป็นรายการจำนวนเต็มคั่นด้วยช่องว่างตามลำดับวงรอบ รอบสามารถส่งออกในลำดับใด ๆ และแต่ละรอบสามารถส่งออกเริ่มต้นที่ตำแหน่งใด ๆ ตัวอย่างที่ 1: 8 2 3 4 5 6 7 0 1 อินพุตนี้เข้ารหัสการเปลี่ยนแปลง 0-> 2, 1-> 3, 2-> 4, 3-> 5, 4-> 6, 5-> 7, 6-> 0, 7-> 1 สิ่งนี้จะสลายตัวเป็นวัฏจักรเช่นนี้: 0 2 4 6 1 3 …

5
Binary Convolution
บิดไบนารีอธิบายโดยตัวเลขและถูกนำไปใช้เป็นจำนวนมากM Nสำหรับแต่ละบิตในการแทนค่าไบนารี่ของMถ้าบิตถูกตั้งค่า ( 1) บิตที่สอดคล้องกันในเอาต์พุตจะถูกกำหนดโดย XOR โดยสองบิตที่อยู่ติดกับบิตที่สอดคล้องกันในN(ล้อมรอบเมื่อจำเป็น) หากบิตไม่ได้ตั้งค่า ( 0) Nแล้วบิตที่สอดคล้องกันในการส่งออกจะได้รับจากบิตที่สอดคล้องกันใน ตัวอย่างการทำงาน (ที่มีค่า 8 บิต): อนุญาตN = 150, M = 59. respresentations ไบนารีของพวกเขา (ตามลำดับ) และ1001011000111011 ขึ้นอยู่กับการMเป็นตัวแทนไบนารีของบิต 0, 1, 3, 4 และ 5 มีการ convolved ผลการบิต 0 จะได้รับโดย XORing บิต 1 และ 7 (เนื่องจากเราห่อรอบ) 1ยอม ผลสำหรับบิต 1 จะได้รับโดย XORing บิต 0 …
15 code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

3
การดำเนินการกลุ่มการเปลี่ยนแปลง
มี bijection ที่รู้จักกันดีระหว่างการเรียงสับเปลี่ยนขององค์ประกอบ n และตัวเลข 0 ถึง n! -1 เช่นนั้นการเรียงลำดับพจนานุกรมของการเปลี่ยนลำดับและตัวเลขที่สอดคล้องกันจะเหมือนกัน ตัวอย่างเช่นด้วย n = 3: 0 <-> (0, 1, 2) 1 <-> (0, 2, 1) 2 <-> (1, 0, 2) 3 <-> (1, 2, 0) 4 <-> (2, 0, 1) 5 <-> (2, 1, 0) มันเป็นที่รู้จักกันดีว่าการเรียงสับเปลี่ยนขององค์ประกอบ n ประกอบกันเป็นกลุ่ม (กลุ่มสมมาตรของคำสั่ง n!) - …

11
การเปลี่ยนแปลงแหล่งที่มา
การเปลี่ยนแปลงของชุดS={s1,s2,…,sn}S={s1,s2,…,sn}S = \{s_1, s_2, \dotsc, s_n\}เป็นbijectiveฟังก์ชั่นπ:S→Sπ:S→S\pi: S \to S S ตัวอย่างเช่นถ้าS={1,2,3,4}S={1,2,3,4}S = \{1,2,3,4\}ดังนั้นฟังก์ชันπ:x↦1+(x+1mod4)π:x↦1+(x+1mod4)\pi: x \mapsto 1 + (x + 1 \mod 4)เป็นการเปลี่ยนแปลง: π(1)=3,π(2)=4,π(3)=1,π(4)=2π(1)=3,π(2)=4,π(3)=1,π(4)=2 \pi(1) = 3,\quad \pi(2) = 4,\quad \pi(3) = 1,\quad \pi(4) = 2 เราสามารถมีพีชคณิตกับเซตอนันต์ลองใช้NN\mathbb{N}เป็นตัวอย่าง: ฟังก์ชันπ:x↦x−1+2⋅(xmod2)π:x↦x−1+2⋅(xmod2)\pi: x \mapsto x-1 + 2\cdot(x \mod 2)เป็นการเรียงสับเปลี่ยนการสลับเลขคี่และเลขจำนวนเต็มคู่ในบล็อกของสอง องค์ประกอบแรกมีดังนี้: 2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,…2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,… 2,1,4,3,6,5,8,7,10,9,12,11,14,13,16,15,\dotsc ท้าทาย งานของคุณสำหรับความท้าทายนี้คือการเขียนฟังก์ชั่น / …

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