けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

JOI 予選 2016 A - 科目選択 (AOJ 0619) (9Q, 難易度 1)

関数 max()min() を扱う練習!

問題概要

物理、化学、生物、地学、歴史、地理のテストで  A, B, C, D, E, F 点を得た。

  • 物理、化学、生物、地学から 3 科目
  • 歴史、地理から 1 科目

を選択したときの総得点の最大値を求めよ。

制約

  •  0 \le A, B, C, D, E, F \le 100

考えたこと

結局、「物理、化学、生物、地学」のうちの 1 科目、「歴史、地理」のうちの 1 科目を選択しないということになる。よって、6 科目の総得点から

  • 物理、化学、生物、地学の得点のうちの最小値
  • 歴史、地理の得点のうちの最小値

を引くというのがやりやすいだろう。

物理、化学、生物、地学の得点のうちの最小値は C++ では min({A, B, C, D}) と書ける。歴史、地理の得点のうちの最小値は C++ では min(E, F) と書ける。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int A, B, C, D, E, F;
    cin >> A >> B >> C >> D >> E >> F;

    int total = A + B + C + D + E + F;
    cout << total - min({A, B, C, D}) - min(E, F) << endl;
}