参考了别人的博客,百度来的博客
#include<iostream> #include<string> #include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; //暴力 //a ≤ a1; b ≤ b1 int main() { __int64 n,a,b; scanf("%I64d%I64d%I64d",&n,&a,&b); if(n*6<=a*b)printf("%I64d %I64d %I64d ",a*b,a,b); else { __int64 mm=n*6,x=a,y=b,mmm=0; __int64 m=(__int64)sqrt(mm)+1; for(__int64 i=a;i<=m;i++) { __int64 yy=mm/i+(mm%i!=0); if(yy*i>=mm&&yy>=b) { if(!mmm)mmm=i*yy,x=i,y=yy; else if(yy*i<mmm)mmm=yy*i,x=i,y=yy; } } for(__int64 i=b;i<=m;i++) { __int64 xx=mm/i+(mm%i!=0); if(xx*i>=mm&&xx>=a) { if(!mmm)mmm=i*xx,y=i,x=xx; else if(xx*i<mmm)mmm=xx*i,y=i,x=xx; } } printf("%I64d %I64d %I64d ",mmm,x,y); } return 0; }