# 2 Les débutants en Python défient AtCoder! ABC085C --Otoshidama

Importance d'AtCoder

Je suis nouveau dans ce genre de choses, donc je ne sais pas. C'est juste amusant de penser logiquement et de sortir et de confirmer ce que vous avez appris. Pendant que je travaille, je remarque que certaines grandes entreprises informatiques attribuent des scores à AtCoder. En ce sens, il peut être jugé non seulement comme une auto-satisfaction mais aussi objectivement. En ce moment, je résous dans l'ordre à partir de ici "Que faire après vous être inscrit auprès d'AtCoder-Si vous résolvez cela, vous pouvez vous battre assez! 10 questions passées-".

Problème (devis)

[Résumé du problème] Il y avait un total de billets de 10000 yens NN, de 5000 yens et de 1000 yens, et le montant total était de YY yens. Trouvez un ensemble du nombre de factures pour chaque montant qui remplit ces conditions. Si une telle situation ne peut pas exister, sortie -1 -1 -1.

[Restrictions]

1≤N≤2000 1000≤Y≤2∗107 N est un entier Y est multiple de 1000

Ce que j'ai pensé après avoir résolu

Tout d'abord, avez-vous écrit la partie qui doit être considérée comme un commentaire? C'est. Mais je suis content de l'avoir lu après l'avoir résolu. J'ai été accro à l'entraînement musculaire ces derniers temps, alors j'ai essayé de le pousser avec le jeu de puissance. Je pense qu'une solution absolue sortira s'il n'y a pas de limite de temps, mais j'ai plutôt dû réfléchir à la manière de l'optimiser. C'est la même chose que la probabilité et l'ordre que j'ai fait quand j'étais au lycée, et il faut du temps pour les trouver tous. Donc, 10 000 yens et 5 000 yens Si vous remarquez que le nombre de billets de 1000 yens est automatiquement fixé si vous connaissez le nombre de, ce problème semble être OK

Code de soumission

from sys import stdin
N,Y = [int(x) for x in stdin.readline().rstrip().split()]
a = -1
b = -1
c = -1
for i in range(N+1):
    for j in range(N-i+1):
        if i+j+(N-i-j) == N and Y == 10000*i + 5000*j + 1000*(N-i-j):
            a = i
            b = j
            c = (N-i-j)
            break
print(str(a)+' '+str(b)+' '+str(c))

Réflexion

Même avec cela, la bonne réponse était correcte, mais je regrette que nous devions faire des efforts pour augmenter la vitesse de traitement et réduire la taille. Je voulais aussi me souvenir du format. Ce que j'ai appris cette fois ・ -Méthode d'entrée dans la programmation de compétition -Optimisation de la combinaison

est! Si vous utilisez votre tête et faites quelque chose qui n'est ni ah ni ceci, le sentiment d'accomplissement est incroyable. Le tabac est délicieux. Quand je ne savais rien de la programmation de compétition, je mettais les données d'entrée dans une liste, je les retirais à chaque fois, je les mettais dans une variable, etc., donc c'était un code redondant. Je voulais le saisir proprement cette fois, alors j'ai essayé d'utiliser la notation d'inclusion de liste et le module stdin!

La combinaison est comme ci-dessus! Ce n'est que le début, mais est-ce que la programmation d'une série d'applications des connaissances de base tant que vous avez un concept de base? ?? ?? Si vous vous souvenez du module à chaque fois, vous pouvez le faire de plus en plus, non? ?? ?? La fille à l'intérieur de moi se fait remarquer. Je veux faire de plus en plus avec un esprit invincible. Veuillez excuser ma pauvre écriture.

Recommended Posts

# 2 Les débutants en Python défient AtCoder! ABC085C --Otoshidama
[AtCoder] Note personnelle ABC165C [Python]
Concours AtCoder pour débutants Défi des questions passées 4
Concours AtCoder pour débutants Défi des questions passées 9
atCoder 173 Python
Concours AtCoder pour débutants Défi des questions passées 7
Concours AtCoder pour débutants Défi des questions passées 10
Défiez AtCoder
Concours AtCoder Débutants Défi des questions passées 5
Réponse à la sélection des débutants d'AtCoder par Python3
Ensemble d'entrées standard Atcoder pour les débutants (python)
[Python] Défiez 100 coups! (015 ~ 019)
AtCoder ABC 174 Python
[Python] Défiez 100 coups! (030-034)
[Python] Défiez 100 coups! (006-009)
[Python] Défiez 100 coups! (000-005)
[Python] Défiez 100 coups! (010-014)
[Python] Défiez 100 coups! (025-029)
Les débutants pratiquent Python
Note du débutant Python
journal des défis python ①
AtCoder ABC 175 Python
[Python] Défiez 100 coups! (020-024)
Défiez AtCoder (ABC) 164 avec Python! Un problème ~ C
[Exemple de réponse (python3)] ABS (AtCoder Beginners Selection) de atcoder
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Guide du débutant Python (fonctions)
Daily AtCoder # 18 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Résolvez AtCoder 167 avec python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
Résolvez ABC146-C avec Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
[Python] Recherche (itertools) ABC167C
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
Les débutants en Python organisent des tris de tas
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
Les débutants en Python organisent des tri rapides
AtCoder # 10 quotidien avec Python
Python débutant touche Pytorch (3)
[Python] Recherche (NumPy) ABC165C
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Manuel python pour les débutants
Automatiser la soumission d'AtCoder (Python)