Beberapa bulan yang lalu, kami berdiskusi tentang meta tentang meningkatkan reputasi yang diberikan untuk upvotes pada pertanyaan. Berikut dasar-dasar sistem reputasi kami saat ini untuk memilih: 1
- Suara positif
U
bernilai 5 reputasi. - Jawaban suara
u
bernilai 10 reputasi. - Pertanyaan atau jawaban downvote
d
bernilai reputasi -2.
Ada banyak saran berbeda untuk sistem baru, tetapi saat ini yang paling populer adalah identik dengan yang di atas, tetapi dengan upvotes pertanyaan diskalakan ke +10 rep. Tantangan ini adalah tentang menghitung berapa banyak rep yang akan Anda dapatkan jika sistem ini diberlakukan.
Mari kita lihat sebuah contoh. Jika aktivitas memilih itu UUUUuuuuUUUUUduuudUU
, maka Anda akan mendapatkan 121 di bawah sistem saat ini:
U x 4 x 5 = 20 = 20
u x 4 x 10 = 40 = 60
U x 5 x 5 = 25 = 85
d x 1 x -2 = -2 = 83
u x 3 x 10 = 30 = 113
d x 1 x -2 = -2 = 111
U x 2 x 5 = 10 = 121
Total: 121
Tetapi aktivitas yang sama akan menghasilkan 176 di bawah sistem baru:
U x 4 x 10 = 40 = 40
u x 4 x 10 = 40 = 80
U x 5 x 10 = 50 = 130
d x 1 x -2 = -2 = 128
u x 3 x 10 = 30 = 158
d x 1 x -2 = -2 = 156
U x 2 x 10 = 20 = 176
Total: 176
Anda akan mendapatkan 55 rep dari skenario ini.
Sejauh ini, menghitung rep yang berubah tidaklah sulit; cukup hitung jumlah U
s dan kalikan dengan 5. Untungnya, sistem rep tidak sesederhana itu: ada juga cap rep , yang merupakan reputasi paling banyak yang dapat Anda peroleh dari suara dalam satu hari UTC. Ini diatur ke 200 di semua situs.
Juga, batasan rep berlaku secara real time: jika Anda telah mendapatkan 196 rep dan Anda menerima jawaban yang meningkat, Anda sekarang akan memiliki 200 rep. Jika Anda mendapatkan downvote tepat setelah itu, 2 rep akan dikurangi dari 200, sehingga Anda akan memiliki 198 rep.
Dengan aktivitas pemungutan suara UUUuuuuUUUUuuuuUUUUUUUd
, Anda akan mendapatkan 148 rep dalam sistem saat ini:
U x 3 x 5 = 15 = 15
u x 4 x 10 = 40 = 55
U x 4 x 5 = 20 = 75
u x 4 x 10 = 40 = 115
U x 7 x 5 = 35 = 150
d x 1 x -2 = -2 = 148
Total: 148
Tetapi Anda akan mendapatkan 198 di bawah sistem baru:
U x 3 x 10 = 30 = 30
u x 4 x 10 = 40 = 70
U x 4 x 10 = 40 = 110
u x 4 x 10 = 40 = 150
U x 7 x 10 = 70 = 200 (rep capped)
d x 1 x -2 = -2 = 198
Total: 198
Dengan demikian, kenaikannya adalah 50 rep .
Tantangan
Tantangan Anda adalah menulis program atau fungsi yang menggunakan string multi-line dan mengeluarkan total rep yang akan diperoleh dengan algoritma di atas. Setiap baris dihitung sebagai 1 UTC hari, jadi batas rep hanya berlaku sekali per baris.
Uji kasus
(Satu atau lebih jalur input, diikuti oleh integer output.)
UUUuudd
15
UUUuUUUUuUuuUUUUudUUUUuU
57
UUUuUUUUuUuuUUUUudUUUUuU
UUUuudd
72
uuuuuuu
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
uuuuuuuuuuuuuuuuuuuu
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
0
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
5
(empty string)
0
UUUuuuuuUUUuuUUUUUUuuuUUUuuUUUUuuuuUUUdddddddUU
4
UUUuuuuuUUUuuUUUUUUuuuUUUuuUUUUuuuuUUUdddddddUU
UuuUUUudUU
UUUUUUUUUuuuuuuUUUUUUuuUUUUUUuuuuuUUUUUUUUuUUUuuuuUUUUuuuUUUuuuuuuUUUUUUUUuuUUUuuUU
UUu
U
d
UU
UUUUUUUUUUUU
119
Ini adalah kode golf, jadi kode terpendek dalam byte menang.
Tantangan terkait: Hitung jumlah kumulatif vektor yang dibatasi , Hitung reputasi pertukaran tumpukan Anda
1 Ini adalah versi sistem yang sangat disederhanakan. Anda juga kehilangan 1 perwakilan karena menolak jawaban, dan ada unupvotes, yang aneh dan mengikuti aturan mereka sendiri ; dan undownvotes, yang bahkan tidak memiliki aturan untuk diikuti .
sumber
Jawaban:
Perl,
10491 + 2 = 93 byteMembutuhkan
-p
bendera:Kerusakan:
sumber
ES6, 104 byte
Menghitung rep sebelum dan sesudah untuk setiap baris. Penggunaan pertama saya
eval
!sumber
Haskell,
9893 byteBerkat BlackCap untuk golf ini lebih lanjut. Sekarang, saya pikir untuk mencoba lambda di tantangan nanti, sekarang.
3 baris pertama adalah penilaian, a & b adalah skor, f adalah perbedaan dan g adalah fungsi yang memperjelas spesifikasi.
Pemakaian:
sumber
Lua, 196 Bytes
Program ini mengambil argumen multi-garis tunggal sebagai input, dan mencetak perbedaan total dalam rep '
Saya berasumsi saya diizinkan untuk meminta jalur baru di input, jika saya tidak, inilah solusi 204 Bytes yang tidak memerlukannya.
Tidak terseret dan penjelasan
sumber