Daily AtCoder # 33 en Python

introduction

Dernière fois Aujourd'hui, nous allons remplir le camp d'entraînement pour les débutants pour les problèmes de codeur. Le niveau de difficulté est moyen.

#33 AGC029-A 1TLE

** Pensées ** difficile. B et W sont commutés lorsque l'opération est effectuée. Finalement, W sera à gauche et B sera à droite. Pour que $ W_i (1 \ leq i \ leq N) $ aille vers la gauche, vous devez opérer sur tous les Bs à gauche de ce W. Donc, si vous ajoutez le nombre de B à gauche de $ W_i (1 \ leq i \ leq N) $, la réponse est correcte.

s = list(input())

ans = 0
count_b = 0
n = len(s)
for i in range(n):
    if s[i] == 'B':
        count_b += 1
    if s[i] == 'W':
        ans += count_b

print(ans)

ABC139-D 1WA

** Pensées ** C'est un problème avec le reste. Trouvez la valeur maximale du reste total lorsque $ i (1 \ leq i \ leq N $ est divisé par $ P_i $) pour la séquence de nombres $ P $ dans laquelle les entiers jusqu'à $ N $ sont réorganisés. $ Pense que les nombres entiers jusqu'à $ N $ sont classés par ordre croissant. Si vous continuez l'opération, le total du reste sera égal à 0. Si vous décalez $ P $ de un vers la droite, ce sera $ N-1 $. En effet, $ P_i $ est 1 de moins que $ i $, ce qui signifie que lorsque vous le déplacez vers la gauche, la somme des restes est maximisée, car lorsque vous le déplacez vers la gauche, $ est plus petit que $ i $. P_i $ est augmenté de 1. Alors $ i % P_i = i $. Notez que le reste est 0 seulement à $ P_i = 1 $, la somme des restes est $ \ frac {N (N) -1)} {2} $. Une preuve détaillée peut être trouvée dans l'explication.

n = int(input())

print(n*(n-1)//2)

Résumé

Je m'inquiète pour l'ABC de demain car je n'ai pas été dévoué récemment. A bientôt, bonne nuit.

Recommended Posts

AtCoder # 36 quotidien avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 47 avec Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
AtCoder # 1 tous les jours avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
Atcoder ABC164 A-C en Python
atCoder 173 Python
Note d'entrée Python dans AtCoder
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
AtCoder ABC177 A-D avec python