[PYTHON] Nach dem "Diverta 2019 Programmierwettbewerb"

Es war die zweite Teilnahme am AtCoder-Wettbewerb, diesmal war nur A AC, ich weiß nicht, ob B vorhanden war oder nicht (als WJ), C war 48/51 richtige Antwort 3 WA, wie Es war traurig, dass ich in den letzten 30 Minuten fast nichts machen konnte ...

Ein Problem

Ich habe mir das schnell ausgedacht, weil ich nur K aus N zusammensetzen muss ...

    list = input().split()
    print(int(list[0]) - int(list[1]) + 1)

Ich möchte die Eingabemethode lernen, ohne schnell eine Liste zu verwenden ...

B Problem

Es war leicht, über den Algorithmus nachzudenken, da es ein ähnliches Problem mit der Lotterie im Ameisenbuch gab. Ich habe mich vage gefragt, ob es zuerst dreimal war, aber zweimal war genug ... Dies ist C.

    #include<stdio.h>
     
    int main(){
      int r, g, b, n;
      int cnt = 0;
      scanf("%d %d %d %d\n", &r, &g, &b, &n);
      int x = n / r;
      for(int i=x;i>=0;i--){
        int y = (n - (i * r)) / g;
        for(int j=y;j>=0;j--){
          int z = n - (i * r) - (j * g);
          if(z % b == 0){
            cnt++;
          }
        }
      }
      printf("%d\n", cnt);
      return 0;
    }

Bitte verzeihen Sie mir das Trauma, das ich wegen des schwebenden Fehlers in der ersten Hälfte in x, y, z eingefügt habe ... Bitte lassen Sie mich wissen, wenn es noch mehr gibt.

Nachtrag: Es war AC, ich habe es getan

C Problem

Gedankenalgorithmus

Wenn Sie grob schreiben ・ Erhöhen Sie cnt für jedes AB in einem Wort um 1 ・ Erhöhen Sie cnta für das letzte A um 1 ・ Erhöhen Sie cntb um 1 pro B des Kopfes ・ Gibt cnt plus die Mindestwerte von cnta und cntb aus

Code implementiert

    n = int(input())
    list = []
    cnt = 0
    cnta = 0
    cntb = 0
    cntexp = 0
    for i in range(n):
      list.append(input())
      a = list[i].count("AB")
      cnt += a
      if(list[i][-1:] == "A"):
        cnta += 1
      if(list[i][0:1] == "B"):
        cntb += 1
      if((list[i][-1:] == "A")and(list[i][0:1] == "B")):
        cntexp += 1
    cntab = min(cnta, cntb)
    if(cntab == cntexp):
      cntab -= 1
    ans = cnt + cntab
    print(ans)

Es war oben, dass ich es unter Berücksichtigung verschiedener Ausnahmebehandlungen implementiert habe, aber die letzten beiden waren WA ... Bitte sagen Sie mir, welche anderen Muster existieren ...

Ich schien in der Lage zu sein, die D- und E-Probleme zu lösen, aber ich hatte nicht genug Zeit, also möchte ich langsam gehen ...

Recommended Posts

Nach dem "Diverta 2019 Programmierwettbewerb"
Acing Programmierwettbewerb 2020
HHKB Programmierwettbewerb 2020
Keyence Programming Contest 2020 Rückblick
Rückblick auf den NOMURA-Programmierwettbewerb 2020
HHKB Programmierwettbewerb 2020 Rückblick
Atcoder Acing Programmierwettbewerb Python
Hinweise zum HHKB-Programmierwettbewerb 2020
Tokio Marine & Nichido Programmierwettbewerb 2020 Rückblick
Teilnahmebericht des AtCoder HHKB Programmierwettbewerbs 2020
Teilnahmebericht des AtCoder Acing Programming Contest 2020
Teilnahmebericht des AtCoder Keyence Programming Contest 2020
Teilnahmebericht des AtCoder Panasonic Programming Contest 2020
Impressionen 3 Monate nach Abschluss der Programmierschule
Sumitomo Mitsui Trust Bank Programmierwettbewerb 2019 Rückblick