解いた問題

3/20/2012

SRM522 Div1 Medium

450
それっぽい数字を試していく。

きっとこんな感じの解放だろう、って感じの勘で通った。

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;
  }
};