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
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.
・ Toutes les entrées sont des entiers ・ $ 0 \ leq A, B, C $ ・ $ 1 \ leq K \ leq A + B + C \ leq 2 × 10 ^ 9 $
Pour rendre la valeur maximale aussi grande que possible </ b>, la carte est prise en fonction de la valeur de $ K $ comme suit.
Pour $ K \ leq A $ Tout ce que vous avez à faire est de sélectionner et de prendre une carte avec 1 $ écrit dessus.
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.
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
 (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.
{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))
{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;
  }
}
{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));
    }
  }
}