解いた問題

3/20/2012

SRM522 Div1 Medium

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

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

  1. class CorrectMultiplication {  
  2. public:  
  3.   long long getMinimum(int a, int b, int c)  
  4.   {  
  5.     if (a > b) swap(a, b);  
  6.   
  7.     const lli N = 1000000000 + 1;  
  8.   
  9.     lli mn = N * N;  
  10.   
  11.     for (lli A = 1; A * A < N; ++A) {  
  12.       for (lli B = max(1LL, c / A - 100); B < c / A + 100; ++B) {  
  13.         lli C = A * B;  
  14.         mn = min(mn, abs(A - a) + abs(B - b) + abs(C - c));  
  15.       }  
  16.     }  
  17.      
  18.     return mn;  
  19.   }  
  20. };