AtCoder Beginner Contest 167 B Problème Explication de "Programmation linéaire facile" (Python3, C ++, Java)

AtCoder Beginner Contest 167 B Je vais vous expliquer le problème "Programmation linéaire facile".

URL du problème: https://atcoder.jp/contests/abc167/tasks/abc167_b

Résumé du problème

Il existe des cartes $ A $ avec 1 $, des cartes $ B $ avec 0 $ et des cartes $ C $ avec -1 $. Répondez à quelques-unes des sommes maximales possibles des nombres écrits sur les cartes que vous avez prises lorsque vous avez choisi seulement $ K $ de ces cartes.

Contrainte

・ Toutes les entrées sont des entiers ・ $ 0 \ leq A, B, C $ ・ $ 1 \ leq K \ leq A + B + C \ leq 2 × 10 ^ 9 $

Commentaire

Pour rendre la valeur maximale aussi grande que possible </ b>, la carte est prise en fonction de la valeur de $ K $ comme suit.

  1. Pour $ K \ leq A $ Tout ce que vous avez à faire est de sélectionner et de prendre une carte avec 1 $ écrit dessus.

  2. Si $ A <K \ leq A + B $ Après avoir exécuté la méthode indiquée en 1., sélectionnez la carte avec les $ (K-A) $ $ 0 $ restants écrits dessus.

  3. Si $ A + B <K \ leq A + B + C $ Après avoir exécuté la méthode indiquée en 2., sélectionnez la carte avec les $ (K-A-B) $ $ -1 $ restants écrits dessus.

Dans le cas de 1. La réponse est $ K $ Dans le cas 2. La réponse est $ A $ Dans le cas de 3, la réponse est $ A- (K-A-B) $ Ce sera.

Vous pouvez modifier la sortie de la réponse en fonction de la valeur de $ K $.

Il y a des restrictions A+B+C \leq 2×10^9 Bien que ce soit La plage de nombres pouvant être représentée par le type général ʻint (C ++ ou Java) <font color = "red"> $ -2 ^ {31} $ ~ $ 2 ^ {31} -1 $ </ font>, Puisque $ 2 ^ {31} = 21474883647 $, Dans les limites des contraintes, il serait correct de définir $ K $ comme du type ʻint.

Vous trouverez ci-dessous des exemples de réponses en Python3, C ++ et Java.

Exemple de réponse pour chaque langue

Exemple de solution en Python3

{ABC167B.py}


A,B,C,K = map(int,input().split())
if (K <= A):
  print(K)
elif (A < K <= A+B):
  print(A)
else:
  print(A-(K-A-B))
Exemple de solution en C ++

{ABC167B.cpp}


#include<bits/stdc++.h>
using namespace std;
int main(){
  int a,b,c,k;
  cin >> a >> b >> c >> k;
  if (k <= a){
    cout << k << endl;
  }else if (k <= a+b){
    cout << a << endl;
  }else{
    cout << a-(k-a-b) << endl;
  }
}
Exemple de réponse Java

{ABC167B.java}


import java.util.Scanner;
public class Main{
  public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    int a = scan.nextInt();
    int b = scan.nextInt();
    int c = scan.nextInt();
    int k = scan.nextInt();
    if (k <= a){
      System.out.println(k);
    }else if (k <= a+b){
      System.out.println(a);
    }else{
      System.out.println(a-(k-a-b));
    }
  }
}

Recommended Posts

AtCoder Beginner Contest 167 B Problème Explication de "Programmation linéaire facile" (Python3, C ++, Java)
AtCoder Beginner Contest 174 B Explication du problème "Distance" (C ++, Python, Java)
AtCoder Beginner Contest 177 B Explication du problème "Sous-chaîne" (Python3, C ++, Java)
AtCoder Beginner Contest 169 B Problème Explication "Multiplication 2" (Python3, C ++, Java)
AtCoder Beginner Contest 175 B Explication du problème "Making Triangle" (C ++, Python3, Java)
AtCoder Beginner Contest 176 Explication de l '«étape» du problème C (Python3, C ++, Java)
AtCoder Beginner Contest 173 B Problème Explication du "Récapitulatif de l'état du juge" (Python3, C ++, Java)
AtCoder Beginner Contest 170 B Problème Explication "Crane and Turtle" (Python3, C ++, Java)
AtCoder Beginner Contest 166 A Explication du problème "A? C" (Python3, C ++, Java)
AtCoder Beginner Contest 167 Explication d'un problème "enregistrement" (Python3, C ++, Java)
AtCoder Beginner Contest 170 Un problème Explication des «cinq variables» (C ++, Python, Java)
AtCoder Beginner Contest 169 Explication du problème "Multiplication 1" (Python3, C ++, Java)
AtCoder Beginner Contest 176 A Explication du problème "Takoyaki" (Python3, C ++, Java)
AtCoder Beginner Contest 175 Explication d'un problème "Saison des pluies" (C ++, Python3, Java)
AtCoder Beginner Contest 177 Explication du problème "Ne soyez pas en retard" (Python3, C ++, Java)
AtCoder Beginner Contest 177 Explication du problème C "Somme des produits de paires" (Python3, C ++, Java)
AtCoder Beginner Contest 174 C Problème (Python)
AtCoder Beginner Contest 165 Un problème Explication "We Love Golf" (Python3, C ++, Java)
AtCoder Beginner Contest # 002 Problème C
Atcoder Beginner Contest A, B Résumé d'entrée qui a tendance à être un problème Python
Concours de programmation Atcoder Acing Python
AtCoder Regular Contest # 002 Problème C
Concours Atcoder Débutant 152 Kiroku (python)
Résolution avec Ruby, Perl, Java et Python AtCoder Diverta 2019 Concours de programmation Manipulation de chaînes C
[Explication AtCoder] Contrôle ABC180 Problèmes A, B, C avec Python!
[Explication AtCoder] Contrôle ABC158 Problèmes A, B, C avec Python!
[Explication AtCoder] Contrôle ABC164 Problèmes A, B, C avec Python!
[Explication AtCoder] Contrôle ABC168 Problèmes A, B, C avec Python!
Explication ABC127 A, B, C (python)
Explication ABC126 A, B, C (python)
[Python] [Explication] Concours DP typique d'AtCoder: un concours
Mémo Atcoder débutant Python @ Keyence 2020, problème ABC
Concours pour débutants AtCoder: Réponses aux problèmes D Python
[Explication AtCoder] Contrôlez les problèmes A, B, C d'ABC182 avec Python!
[Explication AtCoder] Contrôle ABC184 Problèmes A, B, C avec Python!
Concours AtCoder Débutant 177
Concours AtCoder Débutant 179
[Python] Concours de programmation Sumitomo Mitsui Trust Bank 2019 C (Comment utiliser DP) [AtCoder]
[Explication AtCoder] Contrôlez les problèmes A, B, (C), D de ABC165 avec Python!
[Explication AtCoder] Contrôlez les problèmes A, B, C, D d'ABC183 avec Python!
Concours AtCoder Débutant 172
Concours AtCoder Débutant 180
Concours AtCoder Débutant 173
Concours Atcoder Débutant 153
Défiez AtCoder (ABC) 164 avec Python! Un problème ~ C
[Explication AtCoder] Contrôlez les problèmes A, B, C, D d'ABC181 avec Python!
AtCoder Beginner Contest 177 Problème C J'ai essayé de découvrir pourquoi c'était faux
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
Concours AtCoder Débutant 180 Remarque
Critique du concours AtCoder pour débutant 166
AtCoder Débutant Contest 167 Évaluation
Critique du concours AtCoder
AtCoder Débutant Contest 169 Évaluation