传送门:http://codeforces.com/contest/466/problem/B
做比赛那会儿脑洞大开,目测是吃了万恶的烤鱼。。
#include<stdio.h> #include<string.h> #include<math.h> #define N 1e18 int main() { __int64 n, a, b; while(~scanf("%I64d%I64d%I64d", &n, &a, &b)) { __int64 ans = N; n *= 6; if(a * b >= n) { printf("%I64d\n", a * b); printf("%I64d %I64d\n", a, b); continue; } __int64 z = a, x = b; __int64 s = (__int64)sqrt(n) + 1; for(int i = a; i <= s; i++) { __int64 B = n / i + (n % i > 0); if(i * B < ans && B >= b) z = i, x = B, ans = i * B; } for(int i = b; i <= s; i++) { __int64 A = n / i + (n % i > 0); if(i * A < ans && A >= a) z = A, x = i, ans = i * A; } printf("%I64d\n", x * z); printf("%I64d %I64d\n", z, x); } return 0; }