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

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

6
Iterated Divisor Twist
คำนิยาม อนุญาตmและnเป็นจำนวนเต็มบวก เราบอกว่าmเป็นบิดตัวหารของnถ้ามีจำนวนเต็ม1 < a ≤ bเช่นนั้นและn = a*b m = (a - 1)*(b + 1) + 1ถ้าmสามารถหาได้จากnโดยใช้ศูนย์หรือตัวหารมากขึ้นบิดไปแล้วmเป็นลูกหลานnของ โปรดทราบว่าทุกหมายเลขเป็นผู้สืบทอดของตัวเอง n = 16ตัวอย่างเช่นพิจารณา เราสามารถเลือกa = 2และตั้งแต่b = 8 2*8 = 16แล้วก็ (a - 1)*(b + 1) + 1 = 1*9 + 1 = 10 ซึ่งแสดงให้เห็นว่าเป็นบิดหารของ10 16ด้วยa = 2และb = 5เราก็เห็นว่าเป็นบิดหารของ7 10ดังนั้นเป็นลูกหลานของ716 …

11
คำนวณ XOR ผกผัน
อนุญาตfเป็นฟังก์ชั่นที่แมป bitfield ( {0 1}) ขนาดn+1กับ bitfield ขนาดnโดยใช้XORกับith และi+1th บิตและเขียนผลลัพธ์ใน bitfield ใหม่ ตัวอย่าง: f("0101") = "111" การคำนวณอย่างไม่เป็นทางการ: 0 XOR 1 = 1 1 XOR 0 = 1 0 XOR 1 = 1 อนุญาตเป็นฟังก์ชันผกผันของf_inverse fเนื่องจากการผกผันไม่ซ้ำกันf_inverseส่งคืนโซลูชันที่ถูกต้องหนึ่งรายการ อินพุต: bitfield เป็นสตริง (เช่น"0101111101011") และจำนวนธรรมชาติที่กำหนดk เอาต์พุต: bitfield เป็นสตริงดังนั้นสตริงจะมีผลลัพธ์หากf_inverseถูกนำไปใช้kกับเวลาที่ป้อน bitfield (เช่นf_inverse(f_inverse(f_inverse(input)))) เกณฑ์การชนะ: ตัวละครน้อยที่สุด โบนัส: -25อักขระถ้าf_inverseไม่ได้ใช้ซ้ำ / ซ้ำแล้วซ้ำสตริงออกจะถูกคำนวณโดยตรง …
13 code-golf 

1
แบ่งปันพิซซ่าอย่างเป็นธรรม
ความยากลำบากในการแบ่งปันพิซซ่ากับเพื่อน ๆ เป็นเรื่องยากที่จะตรวจสอบให้แน่ใจว่าทุกคนได้รับเป็ปเปอโรนีในปริมาณที่เท่ากัน ดังนั้นงานของคุณคือการตัดสินใจว่าจะหั่นพิซซ่าอย่างเป็นธรรมเพื่อให้ทุกคนมีความสุข คำสั่ง เขียนโปรแกรมที่ให้รายชื่อตำแหน่งของเป็ปโปนิสบนพิซซ่าวงกลมและจำนวนชิ้นที่จะทำออกรายการของมุมที่ควรตัดพิซซ่าเพื่อให้แต่ละชิ้นมีเป็ปเปอร์โรนีจำนวนเท่ากัน มัน. พิซซ่ามีเพียงหน้าเดียว: เป็ปเปอร์โรนี เพื่อนของคุณไม่สนใจขนาดของชิ้นส่วนของพวกเขาเพียง แต่พวกเขาจะไม่ถูกหลอกจากเป็ปเปอร์โรนี พิซซ่าเป็นวงกลมมีศูนย์กลางอยู่ที่จุดเริ่มต้น(0, 0)และมีรัศมีของ1 เป็ปเปอร์นิสเป็นวงกลมที่มีศูนย์กลางอยู่ที่ใดก็ตามที่อินพุตบอกว่าพวกเขาอยู่กึ่งกลางและมีรัศมี0.1 นำเข้าเป็นจำนวนเต็มที่แสดงจำนวนชิ้นที่จะทำและรายการของคู่สั่งที่แสดงถึงตำแหน่งของพริกไทยในระบบพิกัดคาร์ทีเซียน (ในรูปแบบที่เหมาะสม) ผลลัพธ์ควรเป็นรายการของมุมที่ระบุในเรเดียนซึ่งแสดงถึงตำแหน่งของ "การตัด" กับพิซซ่า (ในช่วง0 <= a < 2pi ) (ในรูปแบบที่เหมาะสม) (ความแม่นยำควรเป็นอย่างน้อย+/- 1e-5) คุณสามารถมีเป็ปเปอร์โรนีบางส่วนบนชิ้น (เช่นถ้าพิซซ่ามีเป็ปเปอร์โรนี่หนึ่งชิ้นและต้องแบ่งให้คน 10 คนตัดพิซซ่าสิบครั้งตัดทั้งหมดหั่นผ่านเป็ปเปอร์โรนี !) สามารถตัด (อาจต้อง) ชิ้นผ่านพริกไทยหลาย Pepperonis อาจทับซ้อนกัน ตัวอย่าง การป้อนข้อมูล: 8 people, pepperonis: (0.4, 0.2), (-0.3, 0.1), (-0.022, -0.5), (0.3, …

4
แก้ปริศนาโรงละคร BattleBlock
เกมBattleBlock ละครบางครั้งมีปริศนาซึ่งเป็นรุ่นทั่วไปของไฟออก คุณมีบล็อกที่อยู่ติดกันสามบล็อกซึ่งแต่ละบล็อกระบุระดับระหว่าง 1 ถึง 4 ที่รวมกับแท่งเช่น: | |||| || หากคุณสัมผัสบล็อกบล็อกนั้นและบล็อกที่อยู่ติดกันจะเพิ่มระดับของบล็อกนั้น (ย้อนกลับจาก 4 เป็น 1) ปริศนาดังกล่าวได้รับการแก้ไขเมื่อบล็อกทั้งสามแสดงระดับเดียวกัน (ไม่สำคัญว่าระดับใด) เนื่องจากลำดับที่คุณสัมผัสบล็อกในนั้นไม่สำคัญเราจึงแสดงวิธีแก้ปัญหาโดยแตะแต่ละบล็อกบ่อยครั้ง ทางออกที่ดีที่สุดสำหรับอินพุตด้านบนจะเป็น201: | --> || --> ||| ||| |||| | || ||| || || || --> ||| เกมนี้สามารถวางบล็อกได้อย่างง่ายดายแม้ว่าจะมีตัวเลขบางตัว แต่การตั้งค่าบางอย่างนั้นไม่สามารถแก้ไขได้ ความท้าทาย เมื่อได้รับลำดับของระดับบล็อกให้ส่งกลับความถี่ที่แต่ละบล็อคต้องสัมผัสเพื่อไขปริศนา เช่นตัวอย่างข้างต้นจะได้รับ142และสามารถให้201ผล หากไม่มีวิธีแก้ปัญหาให้ส่งคืนผลลัพธ์ที่คุณเลือกที่สอดคล้องซึ่งสามารถแยกได้จากโซลูชันที่อาจเกิดขึ้นทั้งหมด-1หรือสตริงว่าง คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมรับอินพุตผ่าน STDIN อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ฟังก์ชันในรายการหรือรูปแบบสตริงที่สะดวกและออกผลลัพธ์ในทำนองเดียวกันผ่านค่าส่งคืนหรือพิมพ์ไปยัง STDOUT รหัสของคุณควรส่งคืนผลลัพธ์ที่ถูกต้องสำหรับกรณีทดสอบทั้งหมดภายในหนึ่งนาทีบนเครื่องที่เหมาะสม (นี่ไม่ใช่ขีด จำกัด ที่เข้มงวดอย่างสมบูรณ์ดังนั้นหากวิธีแก้ปัญหาของคุณใช้เวลาหนึ่งนาทีและสิบวินาทีก็ไม่เป็นไร แต่ถ้าใช้เวลา 3 …

2
เชื่อมสตริงเข้ากับบริบท
สายอักขระที่มีบริบท สำหรับวัตถุประสงค์ของการท้าทายนี้เป็นสตริงกับบริบทเป็นสามสายที่เรียกว่าบริบทซ้ายที่ส่วนข้อมูลและบริบทที่เหมาะสม เพราะมันหมายถึงซับสตริงของสตริงอีกต่อไป เราใช้ท่อแนวตั้ง|เป็นตัวคั่นดังนั้นตัวอย่างของสตริงกับบริบทถูกcod|e-go|lfที่บริบทด้านซ้ายเป็นcodข้อมูลที่เป็นและบริบทที่เหมาะสมคือe-go lfตัวอย่างนี้แสดงให้เห็นถึงอักขระย่อยของe-gocode-golf ตอนนี้เพื่อเชื่อมโยงสองสตริงเข้ากับบริบทเราดำเนินการดังนี้ใช้aa|bcc|deeและcc|de|eeeเป็นตัวอย่าง เราจัดเรียงสตริงเช่นเดียวกับในแผนภาพ a a|b c c|d e e c c|d e|e e e เพื่อให้ส่วนข้อมูลอยู่ติดกัน ส่วนข้อมูลของการต่อข้อมูลคือการต่อข้อมูลส่วนในกรณีbccdeนี้ บริบทด้านซ้ายเป็นส่วนที่ขยายไปทางด้านซ้ายของส่วนข้อมูลแรกในกรณีaaนี้ ในทำนองเดียวกันคือบริบทที่เหมาะสมเพื่อให้เรียงต่อกันเป็นสตริงกับบริบทeee aa|bccde|eeeสำหรับตัวอย่างที่สองให้พิจารณาa|bb|cdและaabb|cd|โดยที่คำที่สองมีบริบทด้านขวาที่ว่างเปล่า แผนภาพการจัดตำแหน่งคือ a|b b|c d a a b b|c d| ที่บริบทด้านซ้ายของคำที่สองขยายออกไปไกลกว่าบริบทแรก aa|bbcd|เรียงต่อกันเป็น แต่เดี๋ยวก่อนมี gotcha: ถ้าตัวอักษรของไดอะแกรมการจัดตำแหน่งไม่ตรงกันการเรียงต่อกันไม่มีอยู่! ตัวอย่างเช่นแผนภาพของaa|bb|ccและc|c|cเป็น a a|b b|c c c|c|c โดยที่bและcในคอลัมน์ที่สี่ไม่เห็นด้วยดังนั้นจึงไม่สามารถต่อกันได้ งาน งานของคุณคือการเขียนโปรแกรมที่มีสองสายโดยมีบริบทที่ส่วนต่าง ๆ ถูกแยกออกไปตาม|ด้านบนและส่งผลการต่อข้อมูลที่มีอยู่ถ้ามันมีอยู่และอย่างอื่นถ้าไม่ใช่ "อย่างอื่น" สามารถเป็นค่าใด …
13 code-golf  string 

6
12 วันของ Golfmas
ท้าทาย ในแต่ละ 12 วันของคริสต์มาสให้ส่งบทร้อยกรองที่เหมาะสมของ "12 วันคริสต์มาส" ตามวันที่มิฉะนั้นจะมีการร้องพร้อมกันของ "ฉันหวังว่ามันจะเป็นคริสต์มาสทุกวัน" ขึ้นบรรทัดใหม่และ / หรือลากขึ้นบรรทัดใหม่ ( \n) และเว้นวรรคต่อท้ายได้รับอนุญาต คุณไม่สามารถอ่านจากแหล่งภายนอก โดยทั่วไปสิ่งที่คุณต้องทำคือการอ่านวันที่ของระบบและส่งออกข้อตาม "12 วันคริสต์มาส" 12 วันแห่งคริสต์มาส สิบสองวันคริสต์มาสเป็นเทศกาลคริสเตียนเริ่มต้นในวันคริสต์มาส (25 ธันวาคม) และสิ้นสุดในวันที่ 5 มกราคม ตัวอย่าง หากวันที่ 25 ธันวาคม (พิมพ์ข้อที่สั้นที่สุด / แรก): On the first day of Christmas my true love sent to me: a Partridge in a Pear …

3
ทฤษฎีบทสี่สี
ทฤษฎีบทสีสี่สหรัฐอเมริกาว่าไม่เกินสี่สีจะต้องสีภูมิภาคของแผนที่ ความท้าทาย เมื่อกำหนดรายการเส้นขอบรัฐให้กำหนดสี ID แต่ละรัฐเพื่อให้ไม่มีสถานะติดกันสองสถานะที่มีสีเดียวกัน ผลลัพธ์ควรเป็นสไตล์ชีท CSS ที่กำหนดสีให้กับรหัสตัวอักษร 2 ตัวของรัฐ นี่คือแผนที่ SVG ที่สไตล์ชีทสามารถนำไปใช้ได้ http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg กฎระเบียบ รหัสที่สั้นที่สุดชนะ สามารถใช้รายการเส้นขอบสถานะใด ๆ สามารถใช้งานได้ 4 สีเท่านั้น รายการสถานะสามารถ hardcoded คำแนะนำ: ใช้fill:คุณสมบัติCSS เพื่อเปลี่ยนสีตัวอย่างเช่น#AL{fill:green} นี่คือรายการของรัฐชายแดน AL-FL AL-GA AL-MS AL-TN AR-LA AR-MO AR-MS AR-OK AR-TN AR-TX AZ-CA AZ-CO AZ-NM AZ-NV AZ-UT CA-NV CA-OR CO-KS CO-NE CO-NM CO-OK CO-UT CO-WY …

9
โปรแกรมวาดภาพสั้น
คุณเพิ่งเชิญศิลปศาสตร์เอกให้กับบ้านของคุณและคุณกำลังบอกเขา / เธอ "คุณรู้ไหมว่าฉันเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมและฉันสามารถทำ x และ y และ z ... " เขาเบื่ออย่างรวดเร็วและขอให้คุณ: "ถ้าคุณเป็นโปรแกรมเมอร์ที่ยอดเยี่ยมจริงๆคุณสามารถสร้างโปรแกรมเพื่อให้ฉันวาดฉันแค่ต้องวาดเส้นบนหน้าจอโดยใช้เมาส์และเลือกสีต่าง ๆ ในลักษณะใด ๆ " รหัสของคุณอาจนำเข้าไลบรารีมาตรฐาน รหัสของคุณอาจต้องใช้สีเพื่อเลือกผ่านแป้นพิมพ์ นี่คือรหัสกอล์ฟ ; รหัสที่สั้นที่สุดชนะ เครื่องหมายหัวข้อ เส้นจะถูกวาดโดยเลื่อนเมาส์ไปรอบ ๆ ในขณะที่กดปุ่มซ้าย อัลกอริทึม Line Bresenham ไม่จำเป็นต้องมีขั้นตอนวิธีการใด ๆ ในตัวจะทำเคล็ดลับ หากผู้ใช้สามารถเปลี่ยนความหนาของเส้นได้ทุกประการคุณจะได้รับโบนัส* 0.8แต่มันก็ไม่จำเป็น ฉันเดาว่ามันควรจะดีกว่าที่จะใช้การวาดเส้นด้วยตนเอง แต่ถ้าคุณต้องการคุณสามารถนำเข้าไลบรารี่สำหรับการพูดในโค้ดรายละเอียด ขั้นต่ำคือ 5 สีที่แตกต่างกัน (แดงเขียวน้ำเงินขาวและดำ) หากคุณทำให้พวกเขาเปลี่ยนแบบสุ่มคุณจะได้รับบทลงโทษ * 1.2 คุณสามารถเปลี่ยนได้ทุกทางที่คุณต้องการ (ทั้งปุ่มและการกดปุ่มตกลง) การวาดพวกเขาโดยการกดเมาส์ไปยังจุดหรือด้วยมือเปล่าจะดีที่สุด (เช่นเมื่อคุณวาดภาพ) และให้โบนัส * 0.7 …

11
การแทนแบบกราฟิกของ Koch สโนว์เฟลค
สร้างเกล็ดหิมะโคช์ส เกล็ดหิมะ Koch เป็นสามเหลี่ยมที่แต่ละnจุดมีการเพิ่มจุดอีกด้านหนึ่งไว้ตรงกลางของแต่ละด้าน: http://en.wikipedia.org/wiki/Koch_snowflake#Properties แล้วเรามีkolmogrov ซับซ้อน ท้าทายโคช์สโนว์เฟลn=4สำหรับ ความท้าทายใหม่คือการวาดเกล็ดหิมะ Koch กับใด ๆnระหว่างและ110 กฎระเบียบ เกล็ดหิมะอาจไม่ฮาร์โค้ดในโปรแกรมหรือในไฟล์ - มันจะต้องสร้างโดยโปรแกรมของคุณ โปรแกรมของคุณต้องรองรับทุกขนาดnตั้งแต่ 1 ถึง 10 จำนวนด้านต้องถูกป้อนโดยผู้ใช้ผ่าน std-in คุณต้องพิมพ์ภาพกราฟิกเกล็ดหิมะลงบนหน้าจอ ตัวอย่างเกล็ดหิมะ Koch ที่มีค่าnเท่ากับ 1, 2, 3 และ 4 (เส้นสีเขียวเพื่อความชัดเจนเท่านั้นอย่าทำซ้ำ): ในกรณีที่มีเบรกเกอร์โปรแกรมที่มีจำนวน upvotes มากที่สุดชนะ (การประกวดป๊อป)

2
ความตึงเครียดบนกราฟตอนที่ II: แถบยาง
นี่เป็นความท้าทายครั้งที่สองในสองเรื่องเกี่ยวกับ "ฟังก์ชันดึงตึง" นี่คือง่ายเล็กน้อย Part I Let 's ไดรฟ์เมตรเล็บเข้าไปในคณะกรรมการที่ตำแหน่ง(x 1 , y 1 )การ(x เมตร , y ม. ) มัดยางรัดไว้กับเส้นที่หนึ่งและเส้นสุดท้ายของเล็บเหล่านั้นและเหยียดรอบเล็บอื่น ๆ เช่นที่วงจะเคลื่อนที่ไปตามเล็บทั้งหมดตามลำดับ โปรดทราบว่าในตอนนี้แถบยางอธิบายฟังก์ชั่นพารามิเตอร์เชิงเส้น(x (t), y (t))ในขอบเขต 2D ตอนนี้ขับไปอีกnเล็บเข้าไปในคณะกรรมการที่ตำแหน่ง(x 1 , y 1 )การ(x n , y n ) ถ้าตอนนี้เราเอาของเดิมเมตรเล็บยกเว้นคนแรกและครั้งสุดท้าย (ซึ่งปลายของยางที่มีการเชื่อมโยงกับ) ยางรัดจะสั้นลงจนกว่าจะมีการโกหกตึงรอบเล็บใหม่ที่ให้ผลผลิตค่อีกฟังก์ชั่นการเชิงเส้น ยกตัวอย่างเช่นใช้m = 12เล็บเริ่มต้นที่ตำแหน่ง(0, 0), (2, -1), (3/2, 4/3), (7/2, 1/3), …

8
การกำหนดหมายเลขบรรทัด - ใช้ nl
งานของคุณคือการใช้โปรแกรมคล้ายกับnlเครื่องมือบรรทัดคำสั่งจากยูทิลิตี้หลักของ GNU ช่องโหว่มาตรฐานถูกแบน คุณไม่สามารถใช้ฟังก์ชันโปรแกรมหรือยูทิลิตี้ในตัวหรือภายนอกสำหรับกำหนดหมายเลขบรรทัดของไฟล์หรือสตริงเช่นnlตัวมันเองหรือ=คำสั่งใน GNU sed สเปค อินพุต โปรแกรมยอมรับชื่อไฟล์เป็นอาร์กิวเมนต์ รหัสของคุณไม่จำเป็นต้องข้ามแพลตฟอร์ม รูปแบบชื่อไฟล์ของระบบปฏิบัติการที่ใช้รหัสควรนำมาใช้เช่นถ้าคุณเกิดขึ้นได้บน Windows, คั่นไดเรกทอรีสามารถหรือ\/ คุณต้องสามารถใช้ไฟล์อินพุต 64 ไฟล์รวมถึง-หากมีการระบุไว้ หากได้รับมากกว่า 64 ให้จัดการ 64 คนแรกเท่านั้น ในรายการชื่อไฟล์-หมายถึงอินพุตมาตรฐาน หากมีการกำหนดชื่อไฟล์ให้อ่านจากไฟล์ตามลำดับที่ได้รับและต่อเนื้อหาเข้าด้วยกันโดยแทรกบรรทัดใหม่ระหว่างแต่ละไฟล์และท้ายบรรทัด หากคุณไม่สามารถอ่านจากชื่อไฟล์อย่างน้อยหนึ่งไฟล์ (เนื่องจากไฟล์ไม่มีอยู่หรือคุณไม่ได้รับอนุญาตให้อ่าน) อย่าเพิกเฉย หากชื่อไฟล์ทั้งหมดที่ระบุไม่ถูกต้องจะไม่แสดงผลใด ๆ หากไม่มีการกำหนดชื่อไฟล์ให้อ่านจากอินพุตมาตรฐาน อ่านจากอินพุตมาตรฐานเท่านั้นหากไม่มีการกำหนดชื่อไฟล์หรือ-ได้รับ เอาท์พุต เอาท์พุทโปรแกรมประสงค์จะออกมาตรฐานการป้อนข้อมูลที่มีเส้นเลขจึง (คุณอาจคิดว่าการป้อนข้อมูลที่มี\n, \r\nหรือ\rปลายสายรับแล้วแต่จำนวนใดจะสะดวกสำหรับคุณ แต่ที่หนึ่งระบุ): <5 spaces>1<tab><content of line 1 of input> <5 spaces>2<tab><content of line 2 of input> ... …

9
เคล็ดลับสำหรับการเล่นกอล์ฟใน Applescript
คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Applescript ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะ Applescript (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ)
13 code-golf  tips 

1
Code-Golf Ascii Art Mini-Golf
Intro มาเล่นมินิกอล์ฟกัน! ลูกกอล์ฟเป็นตัวแทนจากหลุมโดยที่. Oคุณต้องการที่จะได้รับหลุมในหนึ่งในทุก ๆ หลุม แต่คุณไม่ดีที่จะวาง ในความเป็นจริงคุณปฏิเสธที่จะพยายามวางแนวทแยงมุม! เพียงขึ้นลงและไปทั้งสองข้าง คุณวางแผนที่จะโกงโดยการวางกันชนพิเศษ\และ/เพื่อให้คุณสามารถใส่ลูกบอลด้วยการยิงครั้งเดียว ลูกบอลกระดอนจากกันชนที่มุมฉากดังที่แสดงในภาพนี้ อย่าลืมโทรนัดของคุณ! บอกเราว่าคุณกำลังวางทิศทางใด หลุม 1:หลุมแรกนั้นง่ายยิงตรง! ไม่จำเป็นต้องวางกันชนที่นี่ การป้อนข้อมูล: . O เอาท์พุท: right . O 2:อีกพื้นฐานหนึ่งเลี้ยวสั้น ลูกบอลถูกกระแทกกันชนลงในหลุม การป้อนข้อมูล: . O เอาท์พุท: left / . O หรือ down . O / 3:บางหลุมมีกันชนอยู่แล้ว! การป้อนข้อมูล: . \O เอาท์พุท: right . \O \/ หรือ right / …

3
แยกคำเป็นคำอื่น ๆ (เช่น“ afterglow” =“ aft” +“ erg” +“ low”)
นี่คือสิ่งที่คุณพูดออกมา! เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้รายการคำและสร้างรายการของการแยกส่วนที่เป็นไปได้ทั้งหมดสำหรับแต่ละคำ ตัวอย่างเช่น: (หมายเหตุ: นี่เป็นเพียงการสุ่มตัวอย่างเล็ก ๆ เพื่อเป็นตัวอย่างเท่านั้นผลลัพธ์ที่แท้จริงนั้นมีมากมายมหาศาล) afterglow = after + glow afterglow = aft + erg + low alienation = a + lie + nation alienation = a + lien + at + i + on alienation = a + lien + at + ion alienation = alien + …

15
เลือกไม้ที่ยาวที่สุด
คุณเป็นนักเขียนโปรแกรมอายุน้อยที่อาศัยอยู่กับเพื่อนสนิทอีก 2 คน คุณต้องทำทุกอย่างที่ต้องทำในบ้านทุกสัปดาห์และคุณตัดสินใจว่าใครเป็นคนเลือกโดยใช้ไม้เท้า คนที่เลือกไม้ที่สั้นที่สุดจะสูญเสียและทำหน้าที่เหลือเกิน เนื่องจากคุณเป็นโปรแกรมเมอร์และรักการสร้างปริศนาคุณจึงได้ปรับเปลี่ยน "เลือกแท่งที่สั้นที่สุด" ให้เป็นตัวต่อคอมพิวเตอร์ นี่คือกฎของปริศนา คุณจะได้รับเมทริกซ์ 2D โดยที่แต่ละคอลัมน์แสดงถึงแท่ง ในแต่ละคอลัมน์ 1 หมายถึงส่วนหนึ่งของไม้และ 0 เป็นพื้นที่ว่าง เมื่อไปจากบนลงล่างในแต่ละคอลัมน์เริ่มแรกคุณมี0และทันทีที่คุณกดปุ่ม1เริ่มและส่วนที่เหลือของคอลัมน์จะเต็มไปด้วย1เพียง คุณสามารถเขียนโปรแกรมของคุณเพื่อเลือกหนึ่งคอลัมน์ ขนาดของไม้เท้าในคอลัมน์นั้นจะเป็นตัวกำหนดผู้ชนะ / ผู้แพ้ ขนาดของแท่ง == จำนวน 1s ในคอลัมน์นั้น อย่างไรก็ตามโปรแกรมนั้นสามารถมีความซับซ้อนของเวลาเชิงเส้นตรงที่เลวร้ายที่สุดเท่านั้น ในฐานะที่คุณทุกคนเป็นโปรแกรมเมอร์คุณจะรู้ว่าโปรแกรมของคนอื่นกำลังถ่ายภาพเวลาที่จำกัดความซับซ้อน งานของคุณคือ: เขียนโปรแกรมหรือฟังก์ชั่นที่รับอินพุตในรูปแบบ 2D หรืออาร์เรย์ของสตริง อินพุตสามารถนำมาจาก STDIN / prompt / console หรืออาร์กิวเมนต์ของฟังก์ชัน หากคุณกำลังอ่านอินพุตจาก STDIN / พรอมต์คุณสามารถสันนิษฐานได้ว่าการอ่านอินพุตและการแปลงเป็นอาเรย์นั้นใช้เวลา 0 (แม้ว่ารหัสจะต้องมีในคำตอบของคุณ) กำหนดคอลัมน์ด้วยแท่งที่ยาวที่สุดในนั้น เอาต์พุตสามารถเป็นค่าส่งคืนของฟังก์ชันหรือไปยัง STDOUT / …

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