[PYTHON] AtCoderBeginnerContest175 Review & Summary (erste Hälfte)

AtCoder ABC175 Dies ist eine Zusammenfassung der Probleme des AtCoder Beginner Contest 175, der am Samstag, den 15.08.2018, in der Reihenfolge von Problem A unter Berücksichtigung der Berücksichtigung stattfand. Das erste Halbjahr befasst sich mit Fragen bis ABC. Das Problem wird zitiert, aber bitte überprüfen Sie die Wettbewerbsseite für Details. Klicken Sie hier für die Wettbewerbsseite Offizieller Kommentar PDF

Problem Eine Regenzeit

Problemstellung Es gibt eine Aufzeichnung des Wetters in der Stadt AtCoder an einem Tag in Folge für 3 US-Dollar. Der Wetterrekord wird durch die $ 3 $ Längenzeichenfolge $ S $ dargestellt, und das $ i (1 \ leqq i \ leqq 3) $ Tageswetter ist sonnig, wenn der $ i $ Buchstabe "S", "R" ist. "Es hat damals geregnet. Finden Sie die maximale Anzahl aufeinanderfolgender Regentage.

Wie im Kommentar geschrieben, gibt es 3 Tage lang nur 8 Möglichkeiten. Sie können es also bestehen, wenn Sie es separat schreiben. Wenn Sie auf die Reihenfolge der Bedingungen achten, können Sie diese in den folgenden Fällen lösen.

abc175a.py


n = input()
if "RRR" in n:
    print(3)
elif "RR" in n:
    print(2)
elif "R" in n:
    print(1)
else:
    print(0)

Problem B Dreieck machen

Problemstellung Es gibt $ N $ Sticks mit den Nummern $ 1, ⋯, N $. Die Länge des Balkens $ (i (1 \ leqq i \ leqq N) $ beträgt $ L_i $. Wie viele davon sind $ 3 $ Stangen unterschiedlicher Länge, mit denen ein Dreieck hergestellt werden kann? Mit anderen Worten, finden Sie die Anzahl von $ 3 $ Paaren von ganzen Zahlen $ 1 \ leqq i <j <k \ leqq N $, die beide der folgenden $ 2 $ -Bedingungen erfüllen. ・ $ L_i, L_j, L_k $ sind alle unterschiedlich ・ Es gibt ein Dreieck mit einer Seitenlänge von $ L_i, L_j, L_k $.

Da die Bedingung, dass alle Seiten unterschiedlich sind, in Bezug auf die Bedingung, dass ein Dreieck gilt, einfach ist, existiert das Dreieck, wenn die Länge der $ 3 $ -Seite $ L_i <L_j <L_k $ ist, wenn $ L_i + L_j> L_k $. Wenn Sie beim Sortieren der $ N $ -Bücher zuerst $ 3 $ -Bücher aus $ N $ -Büchern auswählen, ist der Wert ganz rechts der größte Wert unter den ausgewählten $ 3 $ -Büchern. Da $ N $ 100 oder weniger beträgt, können Sie alle Kombinationen rechtzeitig überprüfen.

abc175b.py


n = int(input())
l_list = list(map(int, input().split()))
l_list.sort()
count = 0
for i in range(0, n - 2):
    for j in range(i + 1, n - 1):
        for k in range(j + 1, n):
            a = l_list[i]
            b = l_list[j]
            c = l_list[k]
            if a == b or b == c or c == a:
                continue
            if a + b > c:
                count += 1
            else:
                break
print(count)

C Problem Gehen Takahashi

Problemstellung Takahashi, der auf einigen geraden Linien lebt, befindet sich jetzt an den Koordinaten $ X $. Von nun an beabsichtigt Takahashi, den Vorgang des Bewegens von $ D $ in die positive oder negative Richtung der Koordinaten genau $ K $ mal zu wiederholen. Genauer gesagt können Sie mit $ 1 $ Bewegung von den Koordinaten $ x $ zu $ x + D $ oder $ x - D $ wechseln. Herr Takahashi möchte sich bewegen, so dass der absolute Wert der Koordinaten nach nur $ K $ -Zeiten das Minimum ist. Finden Sie den minimal möglichen Wert als absoluten Wert der Koordinaten, nachdem Sie $ K $ mal verschoben haben.

Anfangs befindet es sich in der Koordinate $ X $, aber da der zu erhaltende Mindestwert der absolute Wert der Koordinate ist, stimmen die Antworten von $ X $ und $ -X $ überein. Wenn im Fall von $ 0 \ leqq X $ die Anzahl der Bewegungen $ K $ unbegrenzt ist, wird der Rest $ T1 $ durch Teilen von $ X $ durch $ D $ oder $ T2 durch Subtrahieren von $ D $ von $ T1 $ erhalten. Entweder $ ist die Antwort. (Ich möchte den absoluten Wert der Koordinaten reduzieren, daher ist es am besten, in der Nähe des Ursprungs hin und her zu gehen.) Zunächst wird bestimmt, ob $ T1 $ erreicht werden kann, und wenn es nicht erreicht werden kann, lautet die Antwort $ X $ abzüglich der Anzahl der Züge x $ D $. Wenn Sie $ T1 $ erreichen können, müssen Sie $ K $ mal bewegen. Berechnen Sie also die verbleibende Anzahl von Bewegungen aus der Anzahl der bisherigen Bewegungen und ob die verbleibende Anzahl von Bewegungen gerade oder ungerade ist, $ T1 $ $ T2 $ ist entschieden. Beachten Sie die Ausgabe, da $ T2 $ negativ ist.

abc175c.py


x, k, d = map(int, input().split())
if x < 0:
    x *= -1
t1 = x % d
t2 = t1 - d
n = (x - t1) // d
if k < n:
    print(x - k * d)
else:
    n = k - n
    if n % 2 == 0:
        print(t1)
    else:
        print(-t2)

Dies ist das Ende der ersten Hälfte. Ich bin in den Sommerferien, aber ich bin damit beschäftigt, Antworten zu schreiben, weil das Papier unter bestimmten Bedingungen angenommen wird. Deshalb würde ich es gerne schreiben, wenn ich in der zweiten Hälfte Zeit habe. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

AtCoderBeginnerContest175 Review & Summary (erste Hälfte)
AtCoderBeginnerContest164 Review & Summary (erste Hälfte)
AtCoderBeginnerContest169 Review & Summary (erste Hälfte)
AtCoderBeginnerContest174 Review & Summary (erste Hälfte)
AtCoderBeginnerContest173 Review & Summary (Erste Hälfte)
AtCoderBeginnerContest165 Review & Summary (erste Hälfte)
AtCoderBeginnerContest170 Review & Summary (erste Hälfte)
AtCoderBeginnerContest167 Review & Summary (erste Hälfte)
AtCoderBeginnerContest177 Review & Summary (erste Hälfte)
AtCoderBeginnerContest168 Review & Summary (erste Hälfte)
AtCoderBeginnerContest178 Review & Summary (erste Hälfte)
AtCoderBeginnerContest171 Review & Summary (erste Hälfte)
AtCoderBeginnerContest166 Review & Summary (erste Hälfte)
AtCoderBeginnerContest161 Review & Summary (erste Hälfte)
AtCoderBeginnerContest172 Review & Summary (erste Hälfte)
AtCoderBeginnerContest176 Review & Summary (erste Hälfte)
AtCoderBeginnerContest178 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest161 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest164 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest176 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest168 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest169 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest166 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest171 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest174 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest173 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest177 Review & Summary (zweite Hälfte)
AtCoderBeginnerContest180 Review & Zusammenfassung
AtCoderBeginnerContest181 Überprüfung & Zusammenfassung
AtCoderBeginnerContest182 Überprüfung & Zusammenfassung
AtCoderBeginnerContest183 Überprüfung & Zusammenfassung
AtCoderBeginnerContest179 Review & Zusammenfassung
Django Girls Tutorial Zusammenfassung Erste Hälfte
AtCoder Rückblick auf frühere Fragen (erste Hälfte von 12 / 8,9)