整理するのが難しい!
問題概要
3 個の 1 桁の整数 が与えられる。
このうちの 2 個を選んで並べて 2 桁の整数を作る。さらに、その残りの 1 個の整数をそれに足す。
こうしてできる整数の最大値を求めよ。
解法
たとえば、3 個の整数が のとき、最大の数を十の位に据えるとよい。この場合の最大値は
- または
となる。 のうちの最大値を十の位にすることさえ守れば、答えは一緒になる。具体的なことを言えば、仮に
となるように を並び替えたとする (ソートするなどして)。このとき、答えは
となる。
#include <bits/stdc++.h> using namespace std; int main() { vector<int> A(3); for (int i = 0; i < 3; ++i) cin >> A[i]; sort(A.begin(), A.end()); cout << A[2] * 10 + A[0] + A[1] << endl; }