# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama

Bedeutung von AtCoder

Ich bin neu in solchen Dingen, also weiß ich es nicht. Es macht einfach Spaß, logisch zu denken und das Gelernte auszugeben und zu bestätigen. Während ich arbeite, stelle ich fest, dass einige große IT-Unternehmen AtCoder-Ergebnisse vergeben. In diesem Sinne kann es nicht nur als Selbstzufriedenheit, sondern auch objektiv beurteilt werden. Im Moment löse ich in der Reihenfolge von hier "Was als nächstes nach der Registrierung bei AtCoder zu tun ist - Wenn Sie so viel lösen, können Sie genug kämpfen! 10 vergangene Fragen-".

Problem (Zitat)

[Problemzusammenfassung] Es gab insgesamt NN 10000 Yen-Rechnungen, 5000 Yen-Rechnungen und 1000 Yen-Rechnungen, und der Gesamtbetrag betrug YY Yen. Finden Sie einen Satz der Anzahl der Rechnungen für jeden Betrag, der diese Bedingungen erfüllt. Wenn eine solche Situation nicht bestehen kann, geben Sie -1 -1 -1 aus.

[Beschränkungen]

1≤N≤2000 1000≤Y≤2∗107 N ist eine ganze Zahl Y ist ein Vielfaches von 1000

Was ich nach dem Lösen gedacht habe

Haben Sie zuerst den Teil geschrieben, der als Kommentar betrachtet werden sollte? Das ist. Aber ich bin froh, dass ich es gelesen habe, nachdem ich es gelöst habe. Ich war in letzter Zeit süchtig nach Muskeltraining, also habe ich versucht, es mit Powerplay durchzusetzen. Ich denke, dass eine absolute Lösung herauskommen wird, wenn es keine zeitliche Begrenzung gibt, aber stattdessen musste ich darüber nachdenken, wie ich sie optimieren kann. Es ist das Gleiche wie die Wahrscheinlichkeit und Reihenfolge, die ich als Schüler hatte, und es braucht Zeit, um alle zu finden. Also, 10.000 Yen Rechnung und 5.000 Yen Rechnung Wenn Sie feststellen, dass die Anzahl der 1000-Yen-Scheine automatisch festgelegt wird, wenn Sie die Anzahl kennen, scheint dieses Problem in Ordnung zu sein

Einreichungscode

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))

Betrachtung

Trotzdem war die richtige Antwort richtig, aber ich bedauere, dass wir uns bemühen sollten, die Verarbeitungsgeschwindigkeit zu erhöhen und die Größe zu verringern. Ich wollte mich auch an das Format erinnern. Was ich diesmal gelernt habe ・ -Eingabemethode in der Wettbewerbsprogrammierung -Optimierung der Kombination

ist! Wenn Sie Ihren Kopf benutzen und etwas tun, das weder ah noch so ist, ist das Erfolgserlebnis erstaunlich. Tabak ist köstlich. Wenn ich nichts über Wettbewerbsprogrammierung wusste, habe ich die Eingabedaten einmal in die Liste aufgenommen, jedes Mal herausgenommen, in die Variable eingefügt und so weiter, also war es ein redundanter Code. Ich wollte es dieses Mal ordentlich eingeben, also habe ich versucht, die Listeneinschlussnotation und das stdin-Modul zu verwenden!

Die Kombination ist wie oben! Es ist erst der Anfang, aber programmiert man eine Reihe von Anwendungen des Grundwissens, solange man ein Grundkonzept hat? ?? ?? Wenn Sie sich jedes Mal an das Modul erinnern, können Sie es immer mehr tun, oder? ?? ?? Das Mädchen in mir wird bemerkt. Ich möchte mehr und mehr mit einem unbesiegbaren Verstand tun. Bitte entschuldigen Sie mein schlechtes Schreiben.

Recommended Posts

# 2 Python-Anfänger fordern AtCoder heraus! ABC085C --Otoshidama
[AtCoder] ABC165C Persönliche Notiz [Python]
AtCoder Anfängerwettbewerb Past Question Challenge 4
AtCoder Anfängerwettbewerb Past Question Challenge 9
atCoder 173 Python
AtCoder Anfängerwettbewerb Past Question Challenge 7
AtCoder Anfängerwettbewerb Past Question Challenge 10
Fordern Sie AtCoder heraus
AtCoder Anfängerwettbewerb Past Question Challenge 5
Antwort auf AtCoder Beginners Selection von Python3
Atcoder-Standardeingabesatz für Anfänger (Python)
[Python] Fordere 100 Schläge heraus! (015 ~ 019)
AtCoder ABC 174 Python
[Python] Fordere 100 Schläge heraus! (030-034)
[Python] Fordere 100 Schläge heraus! (006-009)
[Python] Fordere 100 Schläge heraus! (000-005)
[Python] Fordere 100 Schläge heraus! (010-014)
[Python] Fordere 100 Schläge heraus! (025-029)
Anfänger üben Python
Python-Anfängernotiz
Python-Challenge-Tagebuch ①
AtCoder ABC 175 Python
[Python] Fordere 100 Schläge heraus! (020-024)
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
[Antwortbeispiel (python3)] ABS (AtCoder Beginners Selection) des Atcoders
Täglicher AtCoder # 36 mit Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Python-Anfängerhandbuch (Funktionen)
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 33 in Python
Täglicher AtCoder # 7 in Python
AtCoder # 24 jeden Tag mit Python
Löse AtCoder 167 mit Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Löse ABC146-C mit Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 17 mit Python
[Python] Suche (itertools) ABC167C
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 47 mit Python
Python-Anfänger organisieren Heap-Sortierungen
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Python-Anfänger organisieren schnelle Sortierungen
Täglicher AtCoder # 10 mit Python
Python-Anfänger berührt Pytorch (3)
[Python] Suche (NumPy) ABC165C
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Python Lehrbuch für Anfänger
Automatische Übermittlung von AtCoder (Python)