[PYTHON] AtCoder Beginner Contest 161 Rapport de participation

AtCoder Beginner Contest 161 Rapport de participation

ABC161A - ABC Swap

Percer en 3 minutes. Il suffit d'écrire. Cela a pris beaucoup de temps car le test de code en ligne était bloqué.

X, Y, Z = map(int, input().split())

X, Y = Y, X
X, Z = Z, X
print(X, Y, Z)

ABC161B - Popular Vote

Percer en 4 minutes. Puisque le seuil est 1/4 * M du nombre total de votes, commencez par le trouver et vérifiez s'il y a M produits ou plus avec plus de votes que ce seuil. J'ai.

N, M = map(int, input().split())
A = list(map(int, input().split()))

threshold = sum(A) / (4 * M)
if len([a for a in A if a >= threshold]) >= M:
    print('Yes')
else:
    print('No')

ABC161C - Replacing Integer

Pénétrez en 6 minutes. Si N dépasse K, prenez d'abord le surplus. Après que N devienne inférieur à K, il convergera s'il est tourné correctement, car le courant alternatif a été émis après l'avoir lancé 1000 fois de manière appropriée. Le résultat est bon, je vais le réexaminer sérieusement plus tard.

N, K = map(int, input().split())

result = N
if N > K:
    result = min(result, N % K)
for i in range(1000):
    result = min(result, abs(result - K))
print(result)

Addendum: Soit N% K x. Puisque x <K, la valeur absolue de la différence entre x et K est K --x. À propos, la valeur absolue de la différence entre K et K --x est x. Par conséquent, x et Le plus petit K-x est la réponse.

N, K = map(int, input().split())

x = N % K
print(min(x, K - x))

ABC161D - Lunlun Number

Pénétrez en 49 minutes. Naturellement, TLE est requis dans la boucle tout en augmentant le nombre de 1, alors pensez à sauter. Le nombre d'exécutions est de 21 après 12. Le numéro d'exécution ne se produit que lorsque le chiffre devient 2. En cas de problème, avancez le chiffre supérieur d'une unité et rincez le chiffre inférieur à 0. Cela seul, 13 → 20 → 30 Par conséquent, si la valeur du chiffre problématique est inférieure à la valeur du chiffre précédent, nous avons décidé d'avancer la valeur du chiffre problématique de 1. Maintenant, 13 → 21 est avancé. AC. Je corrigerai le code plus tard car is_lunlun est une merde qui renvoie un nombre au lieu d'un booléen.

K = int(input())


def is_lunlun(i):
    result = -1
    n = [ord(c) - 48 for c in str(i)]
    for j in range(len(n) - 1):
        if abs(n[j] - n[j + 1]) <= 1:
            continue
        if n[j] < n[j + 1]:
            for k in range(j + 1, len(n)):
                n[k] = 0
            result = int(''.join(str(k) for k in n))
            result += 10 ** (len(n) - (j + 1))
        else:
            result = int(''.join(str(k) for k in n))
            result += 10 ** (len(n) - (j + 2))
        break
    return result


i = 1
while True:
    # print(i)
    t = is_lunlun(i)
    if t == -1:
        K -= 1
        if K == 0:
            print(i)
            exit()
        i += 1
    else:
        i = t

ABC161E - Yutori

J'ai passé car F semble visiblement plus facile à voir au classement.

ABC161F - Division or Substraction

Je n'ai pas pu percer.

Post-scriptum: J'ai ajouté environ 30 minutes et je l'ai résolu. Au total environ 1 heure? N ≤ 10 12 </ sup>, donc si vous tournez la boucle docilement, TLE est inévitable. Lorsque N devient 1, N = K a </ sup> * (b * K + 1) (a, b ≥ 0). Dans la région de K * K> N, N = a * K + 1 (hors K = N, N -1) Il y a seulement un motif de ≥ 2). Les candidats sont K de 2 ou plus et sqrt (N) ou moins, et (N -1) / K lorsque N -1 est divisible par K. Il est au plus 2 * 10 6 </ sup> donc c'est à temps.

N = int(input())

if N == 2:
    # K = 2
    print(1)
    exit()

result = 2  # K = N - 1, N
for K in range(2, int(N ** 0.5 + 1)):
    t = N
    while t >= K and t % K == 0:
        t //= K
    if t % K == 1:
        result += 1

    if (N-1) % K == 0 and (N-1) // K > K:
        result += 1
print(result)

Recommended Posts

AtCoder Beginner Contest 181 Rapport de participation
AtCoder Beginner Contest 161 Rapport de participation
AtCoder Beginner Contest 151 Rapport de participation
AtCoder Débutant Contest 176 Rapport de participation
AtCoder Beginner Contest 154 Rapport de participation
AtCoder Beginner Contest 166 Rapport de participation
AtCoder Beginner Contest 153 Rapport de participation
AtCoder Beginner Contest 145 Rapport de participation
AtCoder Débutant Contest 184 Rapport de participation
AtCoder Beginner Contest 165 Rapport de participation
Rapport de participation au concours AtCoder Débutant 160
AtCoder Beginner Contest 169 Rapport de participation
AtCoder Beginner Contest 178 Rapport de participation
AtCoder Beginner Contest 163 Rapport de participation
AtCoder Beginner Contest 159 Rapport de participation
AtCoder Beginner Contest 164 Rapport de participation
AtCoder Beginner Contest 168 Rapport de participation
Rapport de participation au concours AtCoder Débutant 150
AtCoder Beginner Contest 158 Rapport de participation
Rapport de participation au concours AtCoder Débutant 180
AtCoder Beginner Contest 156 Rapport de participation
AtCoder Beginner Contest 162 Rapport de participation
AtCoder Débutant Contest 157 Rapport de participation
AtCoder Beginner Contest 167 Rapport de participation
AtCoder Débutant Contest 179 Rapport de participation
Concours AtCoder Débutant 182
AtCoder Beginner Contest 146 Rapport de participation
AtCoder Beginner Contest 152 Rapport de participation
AtCoder Débutant Contest 155 Rapport de participation
AtCoder Beginner Contest 174 Rapport de participation
AtCoder Beginner Contest 171 Rapport de participation
AtCoder Beginner Contest 149 Rapport de participation
AtCoder Beginner Contest 148 Rapport de participation
AtCoder Débutant Contest 170 Rapport de participation
AtCoder Débutant Contest 183 Rapport de participation
Note de participation au concours pour débutants AtCoder # 003
AtCoder Grand Contest 041 Rapport de participation
AtCoder Grand Contest 040 Rapport de participation
Rapport de participation au concours régulier AtCoder 105
AtCoder Regular Contest 104 Rapport de participation
Fiche d'inscription au concours ACL pour débutant
Journal de participation Atcoder Beginner Contest 146
AtCoder Chokudai Contest 005 Rapport de participation
AtCoder Grand Contest 047 Rapport de participation
Concours AtCoder Débutant 177
Concours AtCoder Débutant 179
Concours AtCoder Débutant 172
Concours AtCoder Débutant 180
Concours AtCoder Débutant 173
Concours Atcoder Débutant 153
Rapport de participation au concours de programmation AtCoder HHKB 2020
Rapport de participation au concours de programmation AtCoder Acing 2020
Rapport de participation au concours de programmation AtCoder Keyence 2020
Rapport de participation au concours de programmation AtCoder Panasonic 2020
Critique du concours AtCoder Beginner Contest 152
Concours AtCoder Débutant 181 Remarque
Critique du concours AtCoder Débutant 160
Critique du concours AtCoder Débutant 178