1日1 AL:大会または実習生(白駿2875)


大会または実習生
質問する
白駿大学では、試合に出場する際、原則として女子2人と男子1人でグループを組む.△校長先生になぜか聞いたほうがいい.
白駿大学は優秀な人材が多く、今年もN人の女子学生とM人の男子学生が隊員を探している.大会に参加する学生のうちK人は速成課程に参加しなければならない.実習に参加する学生は大会に参加できない.
白駿大学には優秀な人材がたくさんいるので、一番いい方法は巨大なチームを作ることです.
皆さんは女子の数N、男子の数M、インターンシップに参加する人数Kが必要なときにできる最大のチームを見つければいいのです.
入力
1行目はN,M,Kの順に与えられる.(0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N),
しゅつりょく
作成できるチームの最大数を出力します.
に答える
各値を入力し、2人の女子学生、1人の男子学生がグループを構成する条件と
インターンシップに参加する必要があるk人に条件を提出する.
この場合、大会に参加する人数、つまり女子+男子のチームになれる人数は、実習に参加する人数より多いはずです.
この時点で女子は2名少ない男子-1名
彼らはこのような授業を欠席した学生でチームを構成するので、チームは次々と増加します.
Python
import sys
input = sys.stdin.readline

n, m, k = map(int, input().split())
team = 0

while n >= 2 and m >=1 and n+m >= k+3:
    n -= 2
    m -= 1
    team += 1
print(team)
次のリンクでは、inputsysモジュールとして宣言する理由について説明します.
https://github.com/hjun-park/Coding-test-self-study/issues/1
各値を受け入れ、条件に従って繰り返します.
Java8
import java.io.*;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] inputValues = br.readLine().split(" ");

        int n = Integer.parseInt(inputValues[0]);
        int m = Integer.parseInt(inputValues[1]);
        int k = Integer.parseInt(inputValues[2]);

        int res = 0;
        while(n >= 2 && m >= 1 && m+n >= k+3) {
            n -= 2;
            m -= 1;
            res += 1;
        }
        br.close();
        System.out.println(res);
    }
}
入力された値にスペースが含まれているため、BufferedReaderを使用してスペースを区切りとして値を読み込み、この値をオブジェクトInteger.parseInt()に置き換えます.
元:https://www.acmicpc.net/problem/2875