Dobry wieczór,
zmagam się z tym problemem już czwarty dzień z kolei i wyczerpałem wszystkie pomysły co mogło być nie tak. Znalazłem równanie, znalazłem wymagane warunki, wszystko na nic.
Bardzo proszę o wskazówki gdzie popełniam błąd. Dodam, że program przechodzi pozytywnie wszystkie testy.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int test;
cin >>test;
string answer[test];
for(int i=0;i<test;i++)
{
int a=0,b=0,c=0,d=0,tmp=0;
cin>>a>>b>>c>>d;
if (a<b ){tmp=a; a=b; b=tmp;}
if(c<d){tmp=c;c=d;d=tmp;}
if (c+d>a+b) answer[i]="NIE";
else if (c*d>a*b) answer[i]="NIE";
else if (c*c+d*d>a*a+b*b) answer[i]="NIE";
else if ((a+b-(a-b))/2<(c+d-(c-d))/2) answer[i]="NIE";
// else if (a>c&&b>d) answer[i]="TAK";
else if( d < b && (c < a || b * (c*c+d*d) > (2*c*d*a + (c*c-d*d)*sqrt(c*c+d*d-a*a))) ){ answer[i]="TAK"; }
else answer[i]="NIE";
}
for(int i=0;i<test;i++)
{
cout<<answer[i]<<endl;
}
return 0;
}