#include <iostream>
#include <ctime>
using namespace std;
const int MAX_DIMENSION = 100;
bool test(double a, double b, double p, double q, double r, double s) {
return (a > p && a > r && b > (q + s)) ||
(a > q && a > r && b > (p + s)) ||
(a > p && a > s && b > (q + r)) ||
(a > q && a > s && b > (p + r)) ||
(b > p && b > r && a > (q + s)) ||
(b > q && b > r && a > (p + s)) ||
(b > p && b > s && a > (q + r)) ||
(b > q && b > s && a > (p + r));
}
bool brovko(double a, double b, double p, double q, double r, double s) {
if ((q>=b && q>=a) || (s>=b && s>=a) || (r>=a && r>=b) || (p>=a && p>=b))
{
return false;
}
else
{
if((p+r<2*a && q+s<b) || (q+s<2*b && p+r<a))
{
return true;
}
else if((p+r<2*b && q+s<a) || (q+s<2*a && p+r<b))
{
return true;
}
else if((r+q<2*b && s+p<a) || (p+s<2*a && r+q<b))
{
return true;
}
else if((p+s<2*b && r+q<a) || (q+r<2*a && p+s<b))
{
return true;
}
else
{
return false;
}
}
}
double rnd () {
return 1. + rand() % (MAX_DIMENSION - 1);
}
int main(void)
{
double a,b,p,q,r,s;
srand( time( 0 ) );
do {
a = rnd(); b = rnd(); p = rnd(); q = rnd(); r = rnd(); s = rnd();
} while (test(a,b,p,q,r,s) == brovko(a,b,p,q,r,s));
printf ("%g %g %g %g %g %g: Brovko say %s, but must be %s.", a,b,p,q,r,s, brovko(a,b,p,q,r,s)? "yes": "no", test(a,b,p,q,r,s)? "yes": "no");
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYX0RJTUVOU0lPTiA9IDEwMDsKCmJvb2wgdGVzdChkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBwLCBkb3VibGUgcSwgZG91YmxlIHIsIGRvdWJsZSBzKSB7CglyZXR1cm4JKGEgPiBwICYmIGEgPiByICYmIGIgPiAocSArIHMpKSB8fCAKICAgCQkJKGEgPiBxICYmIGEgPiByICYmIGIgPiAocCArIHMpKSB8fAogICAJCQkoYSA+IHAgJiYgYSA+IHMgJiYgYiA+IChxICsgcikpIHx8CiAgIAkJCShhID4gcSAmJiBhID4gcyAmJiBiID4gKHAgKyByKSkgfHwKCQkJKGIgPiBwICYmIGIgPiByICYmIGEgPiAocSArIHMpKSB8fCAKICAgCQkJKGIgPiBxICYmIGIgPiByICYmIGEgPiAocCArIHMpKSB8fAogICAJCQkoYiA+IHAgJiYgYiA+IHMgJiYgYSA+IChxICsgcikpIHx8CiAgIAkJCShiID4gcSAmJiBiID4gcyAmJiBhID4gKHAgKyByKSk7Cn0KCmJvb2wgYnJvdmtvKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIHAsIGRvdWJsZSBxLCBkb3VibGUgciwgZG91YmxlIHMpIHsKCWlmICgocT49YiAmJiBxPj1hKSB8fCAocz49YiAmJiBzPj1hKSB8fCAocj49YSAmJiByPj1iKSB8fCAocD49YSAmJiBwPj1iKSkKCQl7CgkJcmV0dXJuIGZhbHNlOwoJCX0KCWVsc2UKCXsKCWlmKChwK3I8MiphICYmIHErczxiKSB8fCAocStzPDIqYiAmJiBwK3I8YSkpCiAgICAgIAl7CgkJcmV0dXJuIHRydWU7CgkgIAl9CgllbHNlIGlmKChwK3I8MipiICYmIHErczxhKSB8fCAocStzPDIqYSAmJiBwK3I8YikpCgkJewoJCXJldHVybiB0cnVlOwoJCX0KCWVsc2UgaWYoKHIrcTwyKmIgJiYgcytwPGEpIHx8IChwK3M8MiphICYmIHIrcTxiKSkKCQl7CgkJcmV0dXJuIHRydWU7CgkJfQoJZWxzZSBpZigocCtzPDIqYiAmJiByK3E8YSkgfHwgKHErcjwyKmEgJiYgcCtzPGIpKQoJCXsKCQlyZXR1cm4gdHJ1ZTsKCQl9CgllbHNlCgkgIAl7CgkJcmV0dXJuIGZhbHNlOwoJICAJfQoJfQp9CiAgCmRvdWJsZSBybmQgKCkgewoJcmV0dXJuICAxLiArIHJhbmQoKSAlIChNQVhfRElNRU5TSU9OIC0gMSk7Cn0KCmludCBtYWluKHZvaWQpIAp7Cglkb3VibGUgYSxiLHAscSxyLHM7CglzcmFuZCggdGltZSggMCApICk7CglkbyB7CgkJYSA9IHJuZCgpOyBiID0gcm5kKCk7IHAgPSBybmQoKTsgcSA9IHJuZCgpOyByID0gcm5kKCk7IHMgPSBybmQoKTsKCX0gd2hpbGUgKHRlc3QoYSxiLHAscSxyLHMpID09IGJyb3ZrbyhhLGIscCxxLHIscykpOwoJcHJpbnRmICgiJWcgJWcgJWcgJWcgJWcgJWc6IEJyb3ZrbyBzYXkgJXMsIGJ1dCBtdXN0IGJlICVzLiIsIGEsYixwLHEscixzLCBicm92a28oYSxiLHAscSxyLHMpPyAieWVzIjogIm5vIiwgdGVzdChhLGIscCxxLHIscyk/ICJ5ZXMiOiAibm8iKTsKfQ==