หลังจาก@ MartinBüttnerประสบความสำเร็จตรง 10,000 ชื่อเสียงตอนนี้เรามีสามแถวเต็มรูปแบบของ 10k ผู้ใช้บนหน้าผู้ใช้ ! ตอนนี้เนื่องจากเราเป็นโปรแกรมเมอร์ทั้งหมดที่นี่เราจึงชอบทำสิ่งต่างๆโดยอัตโนมัติแทนที่จะทำด้วยตนเอง ความท้าทายของคุณคือการเขียนโปรแกรมเพื่อแสดงความยินดีกับผู้ใช้ใหม่ 10k โดยอัตโนมัติ
สเปค
อินพุต
อินพุตจะเป็นnบรรทัดของตัวเลขคั่นด้วยช่องว่าง (หากคุณต้องการคุณอาจใช้รายการหมายเลขคั่นด้วยเครื่องหมายจุลภาคหนึ่งรายการหากทำให้รหัสของคุณสั้นลง) ตัวอย่างเช่น:
10 20 30 40 50
15 25 35 45 55
20 30 40 50 60
หรือ:
10 20 30 40 50,15 25 35 45 55,20 30 40 50 60
แต่ละรายการตัวเลขแสดงรายการค่าชื่อเสียงของผู้ใช้ในหนึ่งวัน
เอาท์พุต
ผลลัพธ์จะเป็นจำนวนnบรรทัดเดียวกัน(หรือรายการที่คั่นด้วยเครื่องหมายจุลภาคที่มีความยาวเท่ากัน) แต่ละรายการ / รายการจะเป็น:
:Dหากมีผู้ใช้ที่มีชื่อเสียงกลายเป็น> = 10,000- คั่นด้วยช่องว่างหลายรายการ
:Dถ้ามีผู้ใช้หลายคนที่พบหรือผ่านการนับ 10,000 ตัวแทน ตัวอย่างเช่น:D :D :Dสำหรับผู้ใช้ใหม่ 10k 3 ราย
- คั่นด้วยช่องว่างหลายรายการ
:(จากนั้นหยุดเอาต์พุตต่อไปหากอินพุตไม่ชัดเจนหรือเป็นไปไม่ได้ (เพิ่มเติมในหัวข้อถัดไป)- ไม่มีอะไรหากเงื่อนไขเหล่านี้ไม่เป็นจริง
ความคลุมเครือ
เป็นไปได้ว่าอินพุตนั้นไม่ชัดเจน สำหรับจุดประสงค์ของการท้าทายนี้เราถือว่า:
- หมวกชื่อเสียงคือ 200 ต่อวันโดยไม่คำนึงถึงการยอมรับและรางวัลและชอบเพื่อประโยชน์ของความท้าทาย
- ผู้ใช้ต้องไม่เสียชื่อเสียง (เพื่อความเรียบง่ายและเพื่อความท้าทาย)
การป้อนข้อมูลจะถูกพิจารณาว่าไม่ชัดเจนเมื่อไม่สามารถกำหนดได้ว่าค่าชื่อเสียงใดที่สอดคล้องกับผู้ใช้รายใด ตัวอย่างเช่นในอินพุต10 20,30 40คุณไม่สามารถบอกได้ว่าผู้ใช้ 10-rep กลายเป็นผู้ใช้ 30-rep หรือผู้ใช้ 40-rep
การป้อนข้อมูลนั้นถือว่าเป็นไปไม่ได้เมื่อผู้ใช้จากวันหนึ่งอาจไม่สามารถกลายเป็นผู้ใช้ในวันถัดไปได้ ตัวอย่างเช่นในอินพุต10 20,310 320สถานการณ์นี้เป็นไปไม่ได้อย่างชัดเจนเพราะผู้ใช้ไม่สามารถได้รับ 300 ชื่อเสียงในหนึ่งวัน ผู้ใช้ที่เสียชื่อเสียงก็เป็นไปไม่ได้เช่นกัน
กรณีขอบ
- ค่าชื่อเสียงเริ่มต้นสามารถเริ่มต้นได้ทุกอย่าง (เช่นผู้ใช้สามารถเริ่มต้นด้วยชื่อเสียง 1337)
- ไม่มีผลลัพธ์สำหรับรายการบรรทัด / รายการแรก
- อินพุตจะมีความถูกต้องทางไวยากรณ์เสมอซึ่งหมายความว่าค่าชื่อเสียงจะเป็นจำนวนเต็มบวกเสมอจะมีมูลค่าชื่อเสียงเท่ากันต่อรายการบรรทัด / รายการเป็นต้น
- ค่าชื่อเสียงจะไม่ถูกจัดเรียง; พวกเขาอาจอยู่ในลำดับใด ๆ
กรณีทดสอบ
อินพุต: 9900,10000
เอาต์พุต::D
อินพุต: 9900 9950 9910,10100 9950 9910,10300 10150 10110
เอาต์พุต::D,:D :D
อินพุต: 10 20 30,42 10 20,10 242 20,442 42 10,0 0 0,442 42 10
เอาต์พุต:,,,:(
อินพุต: 10 20,15 25,15 25
เอาต์พุต:,,
อินพุต: 9999 9998 9997,10000 9998 9997,10000 10000 9997,10300 10000 10000
เอาต์พุต::D,:D,:(
อินพุต: 100,90,80,70
เอาต์พุต::(
อินพุต: 10000 10000 10000 9999,10000 10000 10000 10000,10010 10020 10030 10040
เอาต์พุต::D,:(
อินพุต: 9999 9998 9997 9996,10196 10197 10198 10199,10399 10199 10197 10196
เอาต์พุต::D :D :D :D,
(i.e. a user can start with 1337 reputation).ฉันชอบ coz นี้ที่เป็นตัวแทนของฉัน ... wel 5 นาทีที่ผ่านมาจนกระทั่งมีคน upvoted หนึ่งในคำตอบของฉัน xD