พื้นหลัง:
ฉันมักจะพบว่าเมื่อเรียกดูไซต์ Stackexchange ฉันเริ่มสงสัยว่าผู้คนได้รับชื่อเสียงในปริมาณเท่าไร ฉันรู้ว่าฉันสามารถพึ่งพา codegolf SE ได้เสมอเพื่อแก้ปัญหาของฉันดังนั้นนี่คือ:
สร้างโปรแกรมที่จะยอมรับจำนวนเต็มบวกซึ่งแสดงถึงชื่อเสียงของบุคคล เราจะเพิกเฉยต่อค่าหัวและบอกว่านี่เป็นวิธีเดียวที่จะได้รับ / เสียตัวแทนใน SE (ตารางเต็มที่นี่ ):
- ทุกบัญชีเริ่มต้นด้วย 1 ตัวแทนและไม่สามารถลงไปด้านล่างได้
- คำถามของคุณถูกโหวต = +5
- คำตอบของคุณคือ upvoted = +10
- คำถามของคุณถูกโหวต = -2
- คำตอบของคุณคือ downvoted = -2
- คุณลงคะแนนคำตอบ = -1
- คำตอบของคุณได้รับการยอมรับ = +15
- คุณยอมรับคำตอบ = +2
โปรแกรมของคุณจะต้องทราบว่ามีการกระทำเหล่านั้นเกิดขึ้นกี่ครั้งในบัญชีผู้ใช้นั้นเพื่อไปยังตัวแทนที่พวกเขามี มันจะต้องคิดออกจำนวนการกระทำที่สั้นที่สุดเพื่อไปที่ระดับของตัวแทนนี้ ตัวอย่าง:
อินพุต: 11 เอาต์พุต: 1 คำตอบ upvote
อินพุต: 93 เอาต์พุต: 6 คำตอบยอมรับยอมรับ 1 คำตอบ
ในตัวอย่างเหล่านี้เมื่อฉันพูดว่า 'question upvote' หมายถึงเควสท์ของบุคคลนั้นได้รับการโหวต เมื่อฉันพูดว่า 'answer downvote' หมายถึงพวกเขา downvote คำตอบของคนอื่น
กฎ:
code-golfดังนั้นรหัสที่สั้นที่สุดที่สามารถทำสิ่งนี้ชนะ