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

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

4
เมื่ออยู่ในกรุงโรมนับเป็นชาวโรมันทำอย่างไร
พื้นหลัง ความท้าทายนี้ได้รับแรงบันดาลใจจากเว็บไซต์นี้ซึ่งเผยแพร่แผนภาพต่อไปนี้: แผนภาพนี้แสดงให้เราเห็นว่าการแสดงออกของเลขโรมันที่ยาวที่สุดภายใต้ 250 คือ 188 ท้าทาย สัญลักษณ์มาตรฐานที่ใช้ในการแสดงตัวเลขโรมันส่วนใหญ่มีดังต่อไปนี้: { I, V, X, L, C, D, M} ที่ค่าตัวเลขของตัวละครที่มีM= 1000 D= 500 C= 100 L= 50 X= 10 V= 5 I= 1 ในการท้าทายนี้เป้าหมายของคุณคือให้เป็นจำนวนเต็มบวกnคำนวณจำนวนตัวเลขโรมันที่ถูกต้องที่สามารถนำมาประกอบผ่านการต่อเชื่อมnของสัญลักษณ์มาตรฐาน จากนั้นโปรแกรมของคุณจะต้องแสดงผลลัพธ์ของการคำนวณนี้! การป้อนข้อมูล : เป็นจำนวนเต็มบวกn เอาท์พุท : จำนวนที่ถูกต้องแสดงออกเลขโรมันของความยาวn กฎสำหรับนิพจน์ตัวเลขโรมัน แต่เดิมเลขโรมันมีการจับคู่แบบ "เพิ่มเติม" ซึ่งหมายความว่าตัวเลขจะถูกเขียนตามลำดับจากมากไปหาน้อยและผลรวมของค่าของตัวเลขทั้งหมดคือค่าของตัวเลข ต่อมาต่อมาการจับคู่แบบลบการใช้การวางตัวเลขขนาดเล็กลงด้านหน้าที่ใหญ่กว่าเพื่อที่จะลบส่วนที่เล็กกว่าออกจากขนาดใหญ่ คู่ subtractive IXLไม่สามารถถูกล่ามโซ่เหมือนในการแสดงออกที่ไม่ถูกต้องต่อไปนี้: ต่อไปนี้เป็นกฎวันที่ทันสมัยสำหรับการจับคู่แบบบวกและแบบลบ สามารถใช้ I, X …

17
สามารถสร้างลูกบาศก์ได้กี่ก้อน
งาน งานของคุณคือการสร้างโครงสร้างที่มีลูกบาศก์ ปริมาณของลูกบาศก์ทำตามลำดับต่อไปนี้ (ล่าง->ด้านบน)nnn n3,(n−1)3,(n−2)3,...,13n3,(n−1)3,(n−2)3,...,13n^3, (n-1)^3, (n-2)^3,...,1^3 อินพุต ปริมาตรรวมของโครงสร้าง ( )VVV เอาท์พุต มูลค่าของ ( ) คือ: จำนวนรวมของลูกบาศก์nnn V=n3+(n−1)3+....+13V=n3+(n−1)3+....+13V = n^3 + (n-1)^3 + .... + 1^3 บันทึก ข้อมูลที่ป้อนจะเป็นจำนวนเต็มเสมอ บางครั้งก็เป็นไปไม่ได้ที่จะทำตามลำดับเช่น:ไม่ได้แสดงค่าที่เฉพาะเจาะจงสำหรับnในเหตุการณ์นั้นให้คืน -1 หรือค่าเท็จของการเลือกของคุณ (จำเป็นต้องมีความสอดคล้อง)nVVVnnn นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์สำหรับแต่ละภาษาที่ชนะ จะไม่มีการทำเครื่องหมายตอบรับด้วยเหตุผลดังกล่าวข้างต้น การร้องขอ นี่เป็นความท้าทายครั้งแรกของฉันบนเว็บไซต์ดังนั้นโปรดอดทนกับฉันและให้อภัย (และบอกฉันเกี่ยวกับ) ความผิดพลาดใด ๆ ที่ฉันทำ โปรดระบุลิงก์เพื่อให้โค้ดของคุณสามารถทดสอบได้ หากคุณทำได้โปรดเขียนคำอธิบายเกี่ยวกับวิธีการทำงานของรหัสของคุณเพื่อให้ผู้อื่นสามารถเข้าใจและชื่นชมงานของคุณ ตัวอย่าง input : 4183059834009 output : 2022 input …
20 code-golf  math 

30
รับอินพุตพิมพ์เลขยกกำลังทั้งหมดที่ฐานและผลรวมพลังงานไปยังอินพุต
นี่คือความท้าทายครั้งแรกของฉันในเว็บไซต์นี้ ความท้าทายคือการที่จะใช้ในการป้อนข้อมูลจำนวนเต็มnnnซึ่งจะเป็นบวกและการพิมพ์ในลำดับ ( 111เพื่อnnn , รวมทั้ง n ) การส่งออกของi(n−i)i(n−i)i^{(n-i)} (ที่iiiเป็นจำนวนเต็มปัจจุบัน) ตัวอย่าง รับอินพุต 5 โปรแกรมจะพิมพ์: 1 8 9 4 1 14141^4คือ 1 และ1+4=51+4=51+4=5 23232^3คือ 8 และ2+3=52+3=52+3=5 32323^2คือ 9 และ3+2=53+2=53+2=5 41414^1คือ 4 และ4+1=54+1=54+1=5 50505^0คือ 1 และ5+0=55+0=55+0=5 อินพุตและเอาต์พุต ข้อมูลที่ป้อนจะอยู่ในรูปของจำนวนเต็มบวก เอาต์พุตจะเป็นรายการของตัวเลขคั่นด้วยเครื่องหมายจุลภาคหรือบรรทัดใหม่ นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ

11
กราฟของอัศวินบนกระดาน N-by-N
ในหมากรุกอัศวินสามารถเลื่อนไปยังตำแหน่งที่มีเครื่องหมาย X เทียบกับตำแหน่งปัจจุบันเท่านั้นที่มีเครื่องหมาย♞: อัศวินกราฟเป็นกราฟที่แสดงถึงการเคลื่อนไหวทางกฎหมายทั้งหมดของชิ้นอัศวินหมากรุกบนกระดานหมากรุกที่ แต่ละจุดยอดของกราฟนี้แสดงถึงตารางหมากรุกและแต่ละขอบเชื่อมต่อสองสแควร์สที่มีการเคลื่อนไหวของอัศวินแยกจากกัน กราฟมีลักษณะเช่นนี้สำหรับบอร์ด 8-by-8 มาตรฐาน ท้าทาย: กำหนดจำนวนเต็มNโดยที่3 ≤ N ≤ 8ส่งออกเมทริกซ์N-by-N ที่เป็นตัวแทนของบอร์ดซึ่งแสดงจำนวนการเคลื่อนที่ที่เป็นไปได้จากแต่ละตำแหน่ง สำหรับN = 8ผลลัพธ์จะเป็นเมทริกซ์ที่แสดงค่าของแต่ละจุดยอดในกราฟด้านบน รูปแบบผลลัพธ์มีความยืดหยุ่น รายชื่อของรายการหรือแม้แต่รายการแบบย่อเป็นต้นเป็นรูปแบบที่ยอมรับได้ ชุดทดสอบครบชุด: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 …

5
การเล่นกอล์ฟที่เกลียดชัง
การตั้งค่า: เครือข่ายโซเชียลรายงานจำนวนโหวตที่โพสต์มีสองวิธีคือจำนวนupvotes สุทธิ ( upvotesทั้งหมด - downvotes ทั้งหมด) และ% ของคะแนนโหวตที่ upvotesปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด (.5 รอบขึ้น) จำนวน upvotes สุทธิเป็นจำนวนเต็ม (ไม่จำเป็นต้องเป็นค่าบวก) และตัวที่สองรับประกันว่าจะเป็นจำนวนเต็มระหว่าง 0 ถึง +100 จำนวนของ upvotes และจำนวน downvotes มีทั้งจำนวนเต็มศูนย์หรือบวก 32 บิต (คุณสามารถระบุลายเซ็นหรือไม่ได้ลงนาม) สมมติว่าหากไม่มีการลงคะแนนรวมเป็นศูนย์เปอร์เซ็นต์ที่ประกาศเพิ่มจะถูกรายงานว่าเป็นศูนย์ ความท้าทาย: ด้วยจำนวนเต็มสองจำนวนนี้ (net upvotes และ% upvoted) โปรแกรมสั้นที่สุดที่คุณสามารถเขียนได้คืออะไรซึ่งกำหนดจำนวนรวมของupvotes ที่ต่ำที่สุดที่โพสต์ได้รับโดยมีข้อ จำกัด ทั้งหมดข้างต้นเป็นที่พอใจ? รับประกันข้อ จำกัด อินพุต หากอินพุตไม่เป็นไปตามข้อ จำกัด ข้างต้นพฤติกรรมของโปรแกรมขึ้นอยู่กับคุณ ความรุ่งโรจน์โบนัสหากไม่เข้าสู่วงวนไม่สิ้นสุดหรือเกิดปัญหาขัดข้อง ลองส่งคืนจำนวนลบหากคุณต้องการคำแนะนำเพิ่มเติม กฎทั่วไป: นี่คือรหัสกอล์ฟดังนั้นวิธีแก้ปัญหาที่สั้นที่สุดที่ถูกต้อง …

15
ค้นหาเพื่อนบ้านของเซลล์
... หรือย่านที่คุ้นเคยของ Toroidal Moore ได้รับจำนวนเต็มบวกh, wและจำนวนเต็มไม่เป็นลบกลับทั้งหมดของดัชนีที่อยู่รอบ ๆii คุณต้องถือว่าเมทริกซ์ประกอบด้วยhแถวของwองค์ประกอบซึ่งนับจากต่ำสุดที่มุมบนซ้ายไปยังสูงสุดในมุมขวาล่างและกลับมาในรูปแบบที่สมเหตุสมผลรายการของดัชนีที่จะ ล้อมรอบดัชนี, i. เมทริกซ์นี้เป็นพรู (แผนที่ไม่มีที่สิ้นสุดที่ล้อมรอบแต่ละขอบ) ตัวอย่างเช่นอินพุตh=4และw=4จะส่งผลให้เมทริกซ์: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 แต่เฉพาะเจาะจงมากขึ้น: 15 12 13 14 15 12 3 0 1 2 3 0 7 4 5 6 7 4 11 8 …
20 code-golf  matrix 

22
เพิ่มเป็นสองเท่า XOR และทำอีกครั้ง
เรากำหนดฟังก์ชั่นกรัมเป็นกรัม (n) = n แฮคเกอร์ (n * 2)สำหรับจำนวนเต็มใด ๆn> 0 รับx> 0หาจำนวนเต็มที่น้อยที่สุดy> 0ซึ่งg k (y) = xสำหรับk> 0บางตัว ตัวอย่าง x = 549 549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110) 483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010) …

15
คลิปบอร์ดฟังก์ชั่น: วาง
ความท้าทายนี้จะเกี่ยวข้องกับบางส่วนของคุณสมบัติภาษา MATL ที่เป็นส่วนหนึ่งของพฤษภาคม 2018 ภาษาของเดือนเหตุการณ์ ความท้าทายที่เกี่ยวข้อง: คลิปบอร์ดฟังก์ชั่น: สำเนา บทนำ ฟังก์ชั่นคลิปบอร์ดของ MATL จัดเก็บ ("คัดลอก") อินพุตไปยังการโทรล่าสุดทั้งสี่ไปยังฟังก์ชั่นการบันทึกปกติ ฟังก์ชั่นปกติเป็นฟังก์ชั่นที่ใช้กันมากที่สุดใน MATL การรับข้อมูลหมายความว่าฟังก์ชั่นรับอินพุตอย่างน้อยหนึ่งรายการ เนื้อหาคลิปบอร์ดที่เก็บไว้สามารถถูกผลักลงบนสแต็ก ("วาง") ความท้าทายนี้จะนำเนื้อหาของคลิปบอร์ดเป็นอินพุต จะสันนิษฐานว่าฟังก์ชั่นทั้งหมดที่สร้างสถานะคลิปบอร์ดนั้นนำจำนวนเต็มบวกหนึ่งตัวหรือมากกว่าเป็นอินพุต ดังนั้นสถานะคลิปบอร์ดสามารถแสดงโดยรายการของตัวเลข (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเติมคลิปบอร์ดจริง ๆ เห็นความท้าทายที่เกี่ยวข้อง แต่ไม่จำเป็นสำหรับปัจจุบัน) การตีความเนื้อหาของคลิปบอร์ด ตัวอย่างที่ 1 แรกรายการภายในหมายถึงล่าสุดโทรฟังก์ชั่นและอื่น ๆ ดังนั้นรัฐคลิปบอร์ด [[11, 28], [12, 16], [4], [5, 6]] บ่งชี้ว่าการเรียกใช้ฟังก์ชันสุดท้ายใช้สองอินพุตคือ11, 28; การโทรที่สองครั้งสุดท้ายใช้อินพุท12, 16; เป็นต้น (สถานะคลิปบอร์ดนี้จัดทำขึ้นโดยรหัสในตัวอย่างแรกของการท้าทายที่เกี่ยวข้อง) ตัวอย่างที่ 2 หากมีการเรียกใช้ฟังก์ชั่นไม่เพียงพอรายชื่อภายในบางส่วนในคลิปบอร์ดจะว่างเปล่า: [[7, 5], …

30
นับคนอยู่ในช่วง
ถาม: นับจำนวนของคน1ในการเป็นตัวแทนไบนารีของจำนวนทั้งหมดระหว่างช่วง อินพุต: จำนวนเต็มบวกที่ไม่ใช่ทศนิยมสองตัว ผลผลิต: ผลรวมของ1s ทั้งหมดที่อยู่ในช่วงระหว่างตัวเลขสองตัว ตัวอย่าง: 4 , 7 ---> 8 4 = 100 (adds one) = 1 5 = 101 (adds two) = 3 6 = 110 (adds two) = 5 7 = 111 (adds three) = 8 10 , 20 ---> 27 100 , 200 ---> …

13
ทำให้ฉันแกง
มีฟังก์ชั่นfที่รับอาร์กิวเมนต์x 1 , x 2 , …, x n - เช่น f: X 1 × X 2 ×…× X n → Y - ความดีความชอบนิยามใหม่ของFเป็นฟังก์ชั่นการใช้อาร์กิวเมนต์เดียว1ซึ่งแมปไปยังฟังก์ชั่นอื่น เทคนิคนี้มีประโยชน์สำหรับการใช้งานบางส่วนเช่นฟังก์ชั่นcurried ที่เราสามารถเขียนได้powexp = pow(e) ตัวอย่าง สมมติว่าเรามีฟังก์ชั่นfต่อไปนี้รับสามอาร์กิวเมนต์ ( f: X 1 × X 2 × X 3 → Y ): def f(a,b,c): return a + b * …

18
Wythoff บนหรือล่าง?
อันดับแรกให้พูดคุยเกี่ยวกับลำดับเบ็ตตี้ ด้วยจำนวนอตรรกยะบวกrเราสามารถสร้างลำดับอนันต์โดยการคูณจำนวนเต็มบวกกับrตามลำดับและนำพื้นของการคำนวณผลลัพธ์แต่ละอัน ตัวอย่างเช่น, ถ้าr > 1 เรามีเงื่อนไขพิเศษ เราสามารถสร้างจำนวนอตรรกยะจำนวนsเป็นs = r / ( r - 1) แล้วนี้สามารถสร้างลำดับเบ็ตตี้ของตัวเองB s เคล็ดลับคือการที่เรียบร้อยB RและB sเป็นที่เกื้อกูลซึ่งหมายความว่าทุกจำนวนเต็มบวกที่อยู่ในว่าหนึ่งในสองลำดับ ถ้าเราตั้งค่าr = ϕ อัตราส่วนทองคำเราจะได้s = r + 1 และสองลำดับพิเศษ ต่ำลำดับ WythoffสำหรับR : 1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 24, 25, 27, 29, …

11
คุณสะกดคำนี้ด้วยลูกเต๋าเหล่านี้ได้ไหม?
ลูกเต๋าตัวอักษรเป็นเรื่องธรรมดาในเกมคำศัพท์ มันเป็นเรื่องสนุกที่จะลองสะกดคำตลกด้วยลูกเต๋าเกรงกลัว หากคุณหยิบลูกเต๋าสักหนึ่งโอกาสคุณจะไม่สามารถสะกดคำบางคำได้ ความท้าทายนี้เป็นภาพรวมของแนวคิดนั้น ท้าทาย เมื่อระบุรายชื่อของลูกเต๋าที่แต่ละคนมีอย่างน้อย 1 หน้าและหนึ่งคำงานของคุณคือการพิจารณาว่าเป็นไปได้หรือไม่ที่จะสะกดคำนั้นโดยใช้ลูกเต๋าที่ระบุ (ในกรณีนี้ควรส่งคืนผลลัพธ์จริง) สามารถใช้ตัวอักษรจากแต่ละตัวได้เพียงตัวเดียวและสามารถใช้ตัวอักษรได้เพียงครั้งเดียวเท่านั้น คุณไม่จำเป็นต้องใช้ลูกเต๋าที่ให้มาทั้งหมด ตัวอย่าง ในตัวอย่างเล็ก ๆ น้อย ๆ กับลูกเต๋า [[A], [C], [T]] และสตริง CAT ผลลัพธ์จะเป็นจริง แน่นอนว่าค้างคาวจะกลับมาผิดเนื่องจากไม่มีลูกเต๋าในตัว B หากได้รับ [[A, E, I, O, U], [A, B, C, T], [N, P, R]] เป็นชุดของลูกเต๋าคุณจะกลับมาจริงสำหรับ ART, TON และ CUR แต่เป็นเท็จสำหรับ CAT, EAT และ PAN เนื่องจากสตริงเหล่านั้นจำเป็นต้องใช้ลูกเต๋าซ้ำ มันควรจะค่อนข้างชัดเจนว่า …

8
เกือบจะเป็นตอน Columbo
งานของคุณคือค้นหาตัวละครที่หายไปสองตัวในชื่อตอนของ Columbo อินพุต หนึ่งใน 69 โคลัมโบชื่อตอน (ตามที่ระบุไว้ด้านล่าง) *ตรงกับตัวละครทั้งสองถูกแทนที่ด้วย ตัวอย่าง : "Ran*om for a *ead Man" เอาท์พุต คุณอาจส่งคืนชื่อตอนเต็มหรือเพียงแค่ตัวละครสองตัวที่ขาดหายไปในรูปแบบที่สมเหตุสมผลใด ๆ โดยที่ลำดับตัวอักษรนั้นไม่คลุมเครือ เอาต์พุตที่ใช้ได้บางส่วน : "Ransom for a Dead Man" "sD" ["s", "D"] ตอน โปรดไปที่ลิงก์นี้เพื่อรับรายการที่ยังไม่ฟอร์แมต Prescription: Murder Swan Song Murder, Smoke and Shadows Ransom for a Dead Man A Friend in Deed Sex and …

30
เพิ่มสตริงเบส -36
นี่เป็นคำถามที่คล้ายกันที่ฉันถามในรุ่นก่อนหน้านี้แต่ฉันคิดว่ามันเป็นปริศนาที่น่าสนใจ รับสายอักขระที่มีความยาว 10 ซึ่งแทนหมายเลขฐาน 36 เพิ่มทีละหนึ่งและส่งคืนสตริงผลลัพธ์ ซึ่งหมายความว่าสายจะมีเพียงตัวเลขจาก0ไป9และตัวอักษรจากไปaz ฐาน 36 ทำงานดังนี้: ตัวเลขที่ถูกต้องที่สุดคือการเพิ่มค่าครั้งแรกโดยใช้0เพื่อ9 0000000000> 9 ซ้ำ> 0000000009 และหลังจากนั้นaจะzใช้: 000000000a> 25 ซ้ำ> 000000000z หากzต้องการเพิ่มค่ามันจะย้อนกลับไปที่ศูนย์และตัวเลขทางด้านซ้ายจะเพิ่มขึ้น: 000000010 กฎเพิ่มเติม: คุณสามารถใช้อักษรตัวพิมพ์ใหญ่หรือเล็กก็ได้ คุณไม่สามารถวางเลขศูนย์นำหน้าได้ ทั้งอินพุตและเอาต์พุตเป็นสตริงที่มีความยาว 10 คุณไม่จำเป็นต้องจัดการzzzzzzzzzzเป็นอินพุต กรณีทดสอบ: "0000000000" -> "0000000001" "0000000009" -> "000000000a" "000000000z" -> "0000000010" "123456zzzz" -> "1234570000" "00codegolf" -> "00codegolg"

14
นี่เป็นตัวเลขสามเหลี่ยมที่ถูกตัดทอนหรือไม่?
ลำดับ OEIS ที่เกี่ยวข้อง: A008867 หมายเลขสามเหลี่ยมที่ถูกตัดทอน คุณสมบัติทั่วไปของตัวเลขสามเหลี่ยมคือพวกเขาสามารถจัดเรียงในรูปสามเหลี่ยม ตัวอย่างเช่นใช้ 21 และจัดเป็นสามเหลี่ยมของos: โอ อู OOO oooo ooooo oooooo ลองกำหนด "การตัดปลาย:" การตัดสามเหลี่ยมขนาดเดียวกันจากแต่ละมุม วิธีหนึ่งในการตัดทอน 21 มีดังนี้: . . . OOO oooo . ooo . . oo . (รูปสามเหลี่ยม.ถูกตัดจากต้นฉบับ) oเหลืออีก12 วินาทีดังนั้น 12 จึงเป็นเลขสามเหลี่ยมที่ถูกตัดทอน งาน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่น (หรือเทียบเท่า) ที่ใช้จำนวนเต็มและส่งกลับ (หรือใช้วิธีการส่งออกมาตรฐานใด ๆ ) ไม่ว่าจะเป็นตัวเลขเป็นจำนวนสามเหลี่ยมตัดทอน กฎระเบียบ ไม่มีช่องโหว่มาตรฐาน อินพุตเป็นจำนวนเต็มที่ไม่เป็นลบ การตัดไม่สามารถมีความยาวด้านเกินกว่าครึ่งหนึ่งของสามเหลี่ยมเดิม (เช่นการตัดไม่สามารถซ้อนทับกันได้) …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

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