Hiện e đang làm bt trên trang của trường link:https://www.spoj.com/ITPTIT/problems/ITP0201F/
em làm bằng vòng lặp mà cứ bị quá thời gian. Các cao nhân cho e giải pháp nào tối ưu hơn đc k ạ
#include <stdio.h>
#include <math.h>
int main()
{
long long ac=0,bc=0,ab=0,S=0;
double bcp;
scanf("%lld",&ac);
do
{
if(ac==0) break;
++ab;
bcp=sqrt(ab*ab+ac*ac);
bc=bcp;
if((bc*bc)==(ab*ab+ac*ac) && ((bc-ab)<3))
printf("%lld",S=ac*ab/2);
}
while(((double)(bcp-ab))>1 && S==0);
if(S==0)
printf("Just only H.LighT can calculate this!");
return 0;
}