ABC093 C - Same Integers
備忘録
問題
回答
"use strict" function Main(input) { input = input.trim().split(' ').map(Number); const A = input[0]; const B = input[1]; const C = input[2]; let sum = A + B + C; let max = Math.max(A, B, C); let M = 3 * max; let ret = 0; if(M%2 === sum%2){ ret = (M-sum)/2; } else { ret = (M+3-sum)/2; } console.log(ret); } Main(require("fs").readFileSync("/dev/stdin", "utf8"));
考え方
A+B+C
の偶奇は指定された2種類の操作、どちらを行っても変わることはない。
そのため、
A, B, C
のうち、最大の値をM
として、- 最終的に求めたい
ABC
を3 * M
とすると、 3 * M
とA+B+C
の偶奇が同一か否かを比較することによって、- 最大値が
M
かM+1
かが判明する。
最大値がわかれば、あとは (最大値 * 3 - 初期の合計値) / 2
で必要な操作回数がわかる。