Un paio di mesi fa, abbiamo discusso di meta sull'aumento della reputazione assegnata per i voti positivi sulle domande. Ecco le basi del nostro attuale sistema di reputazione per i voti: 1
- Un voto positivo
U
vale 5 punti reputazione. - Un voto di risposta
u
vale 10 reputazione. - Un downvote di domande o risposte
d
vale -2 reputazione.
Ci sono stati molti suggerimenti diversi per un nuovo sistema, ma l'attuale più popolare è identico a quanto sopra, ma con i voti delle domande ridimensionati a +10 rappresentanti. Questa sfida riguarda il calcolo di quanti più rappresentanti guadagneresti se questo sistema venisse messo in atto.
Diamo un'occhiata a un esempio. Se l'attività di voto fosse UUUUuuuuUUUUUduuudUU
, allora guadagneresti 121 con il sistema attuale:
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
Ma la stessa attività guadagnerebbe 176 con il nuovo sistema:
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
Guadagneresti 55 rappresentanti da questo scenario.
Finora, calcolare il rappresentante cambiato non è poi così difficile; basta contare il numero di se U
moltiplicare per 5. Fortunatamente, il sistema di ripetizione non è così semplice: esiste anche un limite di ripetizione , che è la più reputazione che puoi guadagnare dai voti in un giorno UTC. Questo è impostato su 200 su tutti i siti.
Inoltre, il limite di ripetizione si applica in tempo reale: se hai già guadagnato 196 rep e ricevi un voto di risposta, ora avrai 200 rep. Se ricevi un downvote subito dopo, il 2 rep sarà sottratto da 200, quindi avrai 198 rep.
Con l'attività di voto UUUuuuuUUUUuuuuUUUUUUUd
, guadagneresti 148 rappresentanti nel sistema attuale:
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
Ma guadagneresti 198 con il nuovo sistema:
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
Pertanto, l'aumento è di 50 rep .
Sfida
La tua sfida è scrivere un programma o una funzione che includa una stringa multi-linea e produca il rep totale che verrebbe acquisito con l'algoritmo sopra. Ogni riga vale come 1 giorno UTC, quindi il limite di ripetizione si applica una sola volta per riga.
Casi test
(Una o più righe di input, seguite dal numero intero di 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
Questo è il codice golf, quindi vince il codice più breve in byte.
Sfide correlate: calcola la somma cumulativa limitata di un vettore , calcola la tua reputazione di scambio di stack
1 Questa è una versione altamente semplificata del sistema. Si perde anche 1 rappresentante per il voto negativo di una risposta, e esistono non votati, che sono strani e seguono regole proprie ; e undownvotes, che non hanno nemmeno regole da seguire .