それっぽい数字を試していく。
きっとこんな感じの解放だろう、って感じの勘で通った。
- class CorrectMultiplication {
- public:
- long long getMinimum(int a, int b, int c)
- {
- if (a > b) swap(a, b);
- const lli N = 1000000000 + 1;
- lli mn = N * N;
- for (lli A = 1; A * A < N; ++A) {
- for (lli B = max(1LL, c / A - 100); B < c / A + 100; ++B) {
- lli C = A * B;
- mn = min(mn, abs(A - a) + abs(B - b) + abs(C - c));
- }
- }
- return mn;
- }
- };