#include <stdio.h>
#include <stdbool.h>
bool Brovko_condition_zero(int a, int b, int p, int q, int r, int s)
{
int K, L, T;
K=(a*b); //Площадь участка.
L=(p*q); //Площадь первого дома.
T=(r*s); //Площадь второго дома.
if (q+s>2*b && p+r>a)
{
return false;
}
else if (q+s>b && p+r>2*a)
{
return false;
}
else if (L+T>K)
{
return false;
}
else
{
return true;
}
}
bool Brovko_condition(int a, int b, int p, int q, int r, int s)
{
if (q>b || s>b || r>a || p>a)
{
return false;
}
int K=(a*b); //Площадь участка.
int L=(p*q); //Площадь первого дома.
int T=(r*s); //Площадь второго дома.
return ! ((q+s>2*b && p+r>a) || (q+s>b && p+r>2*a) || (L+T>K));
}
bool Brovko_condition2(int a, int b, int p, int q, int r, int s)
{
if (q>b || s>b || r>a || p>a) return false;
if(p+r<=2*a && q+s<=b) return true;
else if (q+s<=2*b && p+r<=a) return true;
else return false;
}
bool Brovko_condition3(int a, int b, int p, int q, int r, int s)
{
if ((q>b && q>a) || (s>b && s>a) || (r>a && r>b) || (p>a && p>b))
{
return false; //printf("Дома не могут быть построены. \n");
}
else
{
if((p+r<=2*a && q+s<=b) || (q+s<=2*b && p+r<=a))
{
return true; //printf("Дома могут быть построены на заданном участке. \n");
}
else if((p+r<=2*b && q+s<=a) || (q+s<=2*a && p+r<=b))
{
return true; //printf("Дома могут быть построены на заданном участке при повороте на 90 градусов. \n");
}
else if((r+q<=2*b && s+p<=a) || (p+s<=2*a && r+q<=b))
{
return true; //printf("Дома могут быть построены на заданном участке при повороте дома со сторонами r s на 90 градусов. \n");
}
else if((p+s<=2*b && r+q<=a) || (q+r<=2*a && p+s<=b))
{
return true; //printf("Дома могут быть построены на заданном участке при повороте дома со сторонами p q на 90 градусов. \n");
}
else
{
return false; //printf("Дома не могут быть построены на заданном участке. \n");
}
}
}
bool Brovko_condition4(int a, int b, int p, int q, int r, int s)
{
if ((q>=b && q>=a) || (s>=b && s>=a) || (r>=a && r>=b) || (p>=a && p>=b))
{
return false; //printf("Дома не могут быть построены. \n");
}
else
{
if((p+r<2*a && q+s<b) || (q+s<2*b && p+r<a))
{
return true; //printf("Дома могут быть построены на заданном участке. \n");
}
else if((p+r<2*b && q+s<a) || (q+s<2*a && p+r<b))
{
return true; //printf("Дома могут быть построены на заданном участке при повороте на 90 градусов. \n");
}
else if((r+q<2*b && s+p<a) || (p+s<2*a && r+q<b))
{
return true; //printf("Дома могут быть построены на заданном участке при повороте дома со сторонами r s на 90 градусов. \n");
}
else if((p+s<2*b && r+q<a) || (q+r<2*a && p+s<b))
{
return true; //printf("Дома могут быть построены на заданном участке при повороте дома со сторонами p q на 90 градусов. \n");
}
else
{
return false; //printf("Дома не могут быть построены на заданном участке. \n");
}
}
}
bool Antonenko_condition_part(int a, int b, int p, int q, int r, int s)
{
return (p+r<=a && q<= b && s<=b) //Два случая нарисованные у Ильи Бровко
|| (q+s<=b && p<= a && r<=a); //без поворотов
}
bool Antonenko_condition(int a, int b, int p, int q, int r, int s)
{
return Antonenko_condition_part(a,b,p,q,r,s) //всевозможные повороты
|| Antonenko_condition_part(a,b,q,p,r,s) //достаточно вращать только
|| Antonenko_condition_part(a,b,p,q,s,r) // внутренние участки
|| Antonenko_condition_part(a,b,q,p,s,r);
}
bool Mazurok_condition(int a, int b, int p, int q, int r, int s)
{
return (a >= p && a >= r && b >= (q + s)) || // Дома стоят вдоль b (4 варианта)
(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)) || // Дома стоят вдоль a (4 варианта)
(b >= q && b >= r && a >= (p + s)) ||
(b >= p && b >= s && a >= (q + r)) ||
(b >= q && b >= s && a >= (p + r));
}
int main(void) {
int a, b, p, q, r, s; //целые, чтобы страховаться от ошибок округления
const int MIN=1, MAX=7;
for (a=MIN;a<MAX;a++)
for (b=MIN;b<MAX;b++)
for (p=MIN;p<MAX;p++)
for (q=MIN;q<MAX;q++)
for (r=MIN;r<MAX;r++)
for (s=MIN;s<MAX;s++)
{
if (Mazurok_condition(a, b, p, q, r, s)
&& !Antonenko_condition(a, b, p, q, r, s))
{
printf( "%d %d %d %d %d %d => B=%s A=%s\n", a, b, p, q, r, s,"yes","no");
}
if (!Mazurok_condition(a, b, p, q, r, s)
&& Antonenko_condition(a, b, p, q, r, s))
{
printf( "%d %d %d %d %d %d => B=%s A=%s\n", a, b, p, q, r, s,"no","yes");
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+Cgpib29sIEJyb3Zrb19jb25kaXRpb25femVybyhpbnQgYSwgaW50IGIsIGludCBwLCBpbnQgcSwgaW50IHIsIGludCBzKQp7CglpbnQgSywgTCwgVDsKCUs9KGEqYik7IC8v0J/Qu9C+0YnQsNC00Ywg0YPRh9Cw0YHRgtC60LAuCglMPShwKnEpOyAvL9Cf0LvQvtGJ0LDQtNGMINC/0LXRgNCy0L7Qs9C+INC00L7QvNCwLgoJVD0ocipzKTsgLy/Qn9C70L7RidCw0LTRjCDQstGC0L7RgNC+0LPQviDQtNC+0LzQsC4KCWlmIChxK3M+MipiICYmIHArcj5hKQoJewoJCXJldHVybiBmYWxzZTsKCX0KCWVsc2UgaWYgKHErcz5iICYmIHArcj4yKmEpCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJZWxzZSBpZiAoTCtUPkspCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJZWxzZQoJewoJCXJldHVybiB0cnVlOwoJfQp9Cgpib29sIEJyb3Zrb19jb25kaXRpb24oaW50IGEsIGludCBiLCBpbnQgcCwgaW50IHEsIGludCByLCBpbnQgcykKewoJaWYgKHE+YiB8fCBzPmIgfHwgcj5hIHx8IHA+YSkKCXsKCQlyZXR1cm4gZmFsc2U7Cgl9CglpbnQgSz0oYSpiKTsgLy/Qn9C70L7RidCw0LTRjCDRg9GH0LDRgdGC0LrQsC4KCWludCBMPShwKnEpOyAvL9Cf0LvQvtGJ0LDQtNGMINC/0LXRgNCy0L7Qs9C+INC00L7QvNCwLgoJaW50IFQ9KHIqcyk7IC8v0J/Qu9C+0YnQsNC00Ywg0LLRgtC+0YDQvtCz0L4g0LTQvtC80LAuCglyZXR1cm4gISAoKHErcz4yKmIgJiYgcCtyPmEpIHx8IChxK3M+YiAmJiBwK3I+MiphKSB8fCAoTCtUPkspKTsKfQoKYm9vbCBCcm92a29fY29uZGl0aW9uMihpbnQgYSwgaW50IGIsIGludCBwLCBpbnQgcSwgaW50IHIsIGludCBzKQp7CglpZiAocT5iIHx8IHM+YiB8fCByPmEgfHwgcD5hKSByZXR1cm4gZmFsc2U7CglpZihwK3I8PTIqYSAmJiBxK3M8PWIpIHJldHVybiB0cnVlOwoJCWVsc2UgaWYgKHErczw9MipiICYmIHArcjw9YSkgcmV0dXJuIHRydWU7CgkJCWVsc2UgcmV0dXJuIGZhbHNlOwp9Cgpib29sIEJyb3Zrb19jb25kaXRpb24zKGludCBhLCBpbnQgYiwgaW50IHAsIGludCBxLCBpbnQgciwgaW50IHMpCnsKCWlmICgocT5iICYmIHE+YSkgfHwgKHM+YiAmJiBzPmEpIHx8IChyPmEgJiYgcj5iKSB8fCAocD5hICYmIHA+YikpCgkJewoJCXJldHVybiBmYWxzZTsgLy9wcmludGYoItCU0L7QvNCwINC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDQv9C+0YHRgtGA0L7QtdC90YsuIFxuIik7CgkJfQoJZWxzZQoJewoJaWYoKHArcjw9MiphICYmIHErczw9YikgfHwgKHErczw9MipiICYmIHArcjw9YSkpCiAgICAgIAl7CgkgICAJcmV0dXJuIHRydWU7IC8vcHJpbnRmKCLQlNC+0LzQsCDQvNC+0LPRg9GCINCx0YvRgtGMINC/0L7RgdGC0YDQvtC10L3RiyDQvdCwINC30LDQtNCw0L3QvdC+0Lwg0YPRh9Cw0YHRgtC60LUuIFxuIik7CgkgIAl9CgllbHNlIGlmKChwK3I8PTIqYiAmJiBxK3M8PWEpIHx8IChxK3M8PTIqYSAmJiBwK3I8PWIpKQoJCXsKCQlyZXR1cm4gdHJ1ZTsgLy9wcmludGYoItCU0L7QvNCwINC80L7Qs9GD0YIg0LHRi9GC0Ywg0L/QvtGB0YLRgNC+0LXQvdGLINC90LAg0LfQsNC00LDQvdC90L7QvCDRg9GH0LDRgdGC0LrQtSDQv9GA0Lgg0L/QvtCy0L7RgNC+0YLQtSDQvdCwIDkwINCz0YDQsNC00YPRgdC+0LIuIFxuIik7CgkJfQoJZWxzZSBpZigocitxPD0yKmIgJiYgcytwPD1hKSB8fCAocCtzPD0yKmEgJiYgcitxPD1iKSkKCQl7CgkJcmV0dXJuIHRydWU7IC8vcHJpbnRmKCLQlNC+0LzQsCDQvNC+0LPRg9GCINCx0YvRgtGMINC/0L7RgdGC0YDQvtC10L3RiyDQvdCwINC30LDQtNCw0L3QvdC+0Lwg0YPRh9Cw0YHRgtC60LUg0L/RgNC4INC/0L7QstC+0YDQvtGC0LUg0LTQvtC80LAg0YHQviDRgdGC0L7RgNC+0L3QsNC80LggciBzINC90LAgOTAg0LPRgNCw0LTRg9GB0L7Qsi4gXG4iKTsKCQl9CgllbHNlIGlmKChwK3M8PTIqYiAmJiByK3E8PWEpIHx8IChxK3I8PTIqYSAmJiBwK3M8PWIpKQoJCXsKCQlyZXR1cm4gdHJ1ZTsgLy9wcmludGYoItCU0L7QvNCwINC80L7Qs9GD0YIg0LHRi9GC0Ywg0L/QvtGB0YLRgNC+0LXQvdGLINC90LAg0LfQsNC00LDQvdC90L7QvCDRg9GH0LDRgdGC0LrQtSDQv9GA0Lgg0L/QvtCy0L7RgNC+0YLQtSDQtNC+0LzQsCDRgdC+INGB0YLQvtGA0L7QvdCw0LzQuCBwIHEg0L3QsCA5MCDQs9GA0LDQtNGD0YHQvtCyLiBcbiIpOwoJCX0KCWVsc2UKCSAgCXsKCQlyZXR1cm4gZmFsc2U7IC8vcHJpbnRmKCLQlNC+0LzQsCDQvdC1INC80L7Qs9GD0YIg0LHRi9GC0Ywg0L/QvtGB0YLRgNC+0LXQvdGLINC90LAg0LfQsNC00LDQvdC90L7QvCDRg9GH0LDRgdGC0LrQtS4gXG4iKTsKCSAgCX0KCX0KfQoKYm9vbCBCcm92a29fY29uZGl0aW9uNChpbnQgYSwgaW50IGIsIGludCBwLCBpbnQgcSwgaW50IHIsIGludCBzKQp7CglpZiAoKHE+PWIgJiYgcT49YSkgfHwgKHM+PWIgJiYgcz49YSkgfHwgKHI+PWEgJiYgcj49YikgfHwgKHA+PWEgJiYgcD49YikpCgkJewoJCXJldHVybiBmYWxzZTsgLy9wcmludGYoItCU0L7QvNCwINC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDQv9C+0YHRgtGA0L7QtdC90YsuIFxuIik7CgkJfQoJZWxzZQoJewoJaWYoKHArcjwyKmEgJiYgcStzPGIpIHx8IChxK3M8MipiICYmIHArcjxhKSkKICAgICAgCXsKCSAgIAlyZXR1cm4gdHJ1ZTsgLy9wcmludGYoItCU0L7QvNCwINC80L7Qs9GD0YIg0LHRi9GC0Ywg0L/QvtGB0YLRgNC+0LXQvdGLINC90LAg0LfQsNC00LDQvdC90L7QvCDRg9GH0LDRgdGC0LrQtS4gXG4iKTsKCSAgCX0KCWVsc2UgaWYoKHArcjwyKmIgJiYgcStzPGEpIHx8IChxK3M8MiphICYmIHArcjxiKSkKCQl7CgkJcmV0dXJuIHRydWU7IC8vcHJpbnRmKCLQlNC+0LzQsCDQvNC+0LPRg9GCINCx0YvRgtGMINC/0L7RgdGC0YDQvtC10L3RiyDQvdCwINC30LDQtNCw0L3QvdC+0Lwg0YPRh9Cw0YHRgtC60LUg0L/RgNC4INC/0L7QstC+0YDQvtGC0LUg0L3QsCA5MCDQs9GA0LDQtNGD0YHQvtCyLiBcbiIpOwoJCX0KCWVsc2UgaWYoKHIrcTwyKmIgJiYgcytwPGEpIHx8IChwK3M8MiphICYmIHIrcTxiKSkKCQl7CgkJcmV0dXJuIHRydWU7IC8vcHJpbnRmKCLQlNC+0LzQsCDQvNC+0LPRg9GCINCx0YvRgtGMINC/0L7RgdGC0YDQvtC10L3RiyDQvdCwINC30LDQtNCw0L3QvdC+0Lwg0YPRh9Cw0YHRgtC60LUg0L/RgNC4INC/0L7QstC+0YDQvtGC0LUg0LTQvtC80LAg0YHQviDRgdGC0L7RgNC+0L3QsNC80LggciBzINC90LAgOTAg0LPRgNCw0LTRg9GB0L7Qsi4gXG4iKTsKCQl9CgllbHNlIGlmKChwK3M8MipiICYmIHIrcTxhKSB8fCAocStyPDIqYSAmJiBwK3M8YikpCgkJewoJCXJldHVybiB0cnVlOyAvL3ByaW50Zigi0JTQvtC80LAg0LzQvtCz0YPRgiDQsdGL0YLRjCDQv9C+0YHRgtGA0L7QtdC90Ysg0L3QsCDQt9Cw0LTQsNC90L3QvtC8INGD0YfQsNGB0YLQutC1INC/0YDQuCDQv9C+0LLQvtGA0L7RgtC1INC00L7QvNCwINGB0L4g0YHRgtC+0YDQvtC90LDQvNC4IHAgcSDQvdCwIDkwINCz0YDQsNC00YPRgdC+0LIuIFxuIik7CgkJfQoJZWxzZQoJICAJewoJCXJldHVybiBmYWxzZTsgLy9wcmludGYoItCU0L7QvNCwINC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDQv9C+0YHRgtGA0L7QtdC90Ysg0L3QsCDQt9Cw0LTQsNC90L3QvtC8INGD0YfQsNGB0YLQutC1LiBcbiIpOwoJICAJfQoJfQp9Cgpib29sIEFudG9uZW5rb19jb25kaXRpb25fcGFydChpbnQgYSwgaW50IGIsIGludCBwLCBpbnQgcSwgaW50IHIsIGludCBzKQp7CglyZXR1cm4gKHArcjw9YSAmJiBxPD0gYiAmJiBzPD1iKSAgLy/QlNCy0LAg0YHQu9GD0YfQsNGPINC90LDRgNC40YHQvtCy0LDQvdC90YvQtSDRgyDQmNC70YzQuCDQkdGA0L7QstC60L4KCSAgICB8fCAocStzPD1iICYmIHA8PSBhICYmIHI8PWEpOyAvL9Cx0LXQtyDQv9C+0LLQvtGA0L7RgtC+0LIKfQoKYm9vbCBBbnRvbmVua29fY29uZGl0aW9uKGludCBhLCBpbnQgYiwgaW50IHAsIGludCBxLCBpbnQgciwgaW50IHMpCnsKCXJldHVybiBBbnRvbmVua29fY29uZGl0aW9uX3BhcnQoYSxiLHAscSxyLHMpIC8v0LLRgdC10LLQvtC30LzQvtC20L3Ri9C1INC/0L7QstC+0YDQvtGC0YsKCSAgICB8fCBBbnRvbmVua29fY29uZGl0aW9uX3BhcnQoYSxiLHEscCxyLHMpIC8v0LTQvtGB0YLQsNGC0L7Rh9C90L4g0LLRgNCw0YnQsNGC0Ywg0YLQvtC70YzQutC+CgkgICAgfHwgQW50b25lbmtvX2NvbmRpdGlvbl9wYXJ0KGEsYixwLHEscyxyKSAvLyDQstC90YPRgtGA0LXQvdC90LjQtSDRg9GH0LDRgdGC0LrQuAoJICAgIHx8IEFudG9uZW5rb19jb25kaXRpb25fcGFydChhLGIscSxwLHMscik7Cn0KCmJvb2wgTWF6dXJva19jb25kaXRpb24oaW50IGEsIGludCBiLCBpbnQgcCwgaW50IHEsIGludCByLCBpbnQgcykKewoJcmV0dXJuIChhID49IHAgJiYgYSA+PSByICYmIGIgPj0gKHEgKyBzKSkgfHwgLy8g0JTQvtC80LAg0YHRgtC+0Y/RgiDQstC00L7Qu9GMIGIgKDQg0LLQsNGA0LjQsNC90YLQsCkKICAgCQkoYSA+PSBxICYmIGEgPj0gciAmJiBiID49IChwICsgcykpIHx8CiAgIAkJKGEgPj0gcCAmJiBhID49IHMgJiYgYiA+PSAocSArIHIpKSB8fAogICAJCShhID49IHEgJiYgYSA+PSBzICYmIGIgPj0gKHAgKyByKSkgfHwKICAgCQkoYiA+PSBwICYmIGIgPj0gciAmJiBhID49IChxICsgcykpIHx8IC8vINCU0L7QvNCwINGB0YLQvtGP0YIg0LLQtNC+0LvRjCBhICg0INCy0LDRgNC40LDQvdGC0LApCiAgIAkJKGIgPj0gcSAmJiBiID49IHIgJiYgYSA+PSAocCArIHMpKSB8fAogICAJCShiID49IHAgJiYgYiA+PSBzICYmIGEgPj0gKHEgKyByKSkgfHwKICAgCQkoYiA+PSBxICYmIGIgPj0gcyAmJiBhID49IChwICsgcikpOwp9CgppbnQgbWFpbih2b2lkKSB7CglpbnQgYSwgYiwgcCwgcSwgciwgczsgLy/RhtC10LvRi9C1LCDRh9GC0L7QsdGLINGB0YLRgNCw0YXQvtCy0LDRgtGM0YHRjyDQvtGCINC+0YjQuNCx0L7QuiDQvtC60YDRg9Cz0LvQtdC90LjRjwoJY29uc3QgaW50IE1JTj0xLCBNQVg9NzsKCWZvciAoYT1NSU47YTxNQVg7YSsrKQoJCWZvciAoYj1NSU47YjxNQVg7YisrKQoJCQlmb3IgKHA9TUlOO3A8TUFYO3ArKykKCQkJCWZvciAocT1NSU47cTxNQVg7cSsrKQoJCQkJCWZvciAocj1NSU47cjxNQVg7cisrKQoJCQkJCQlmb3IgKHM9TUlOO3M8TUFYO3MrKykKCXsKCQlpZiAoTWF6dXJva19jb25kaXRpb24oYSwgYiwgcCwgcSwgciwgcykgCgkJICAgICAmJiAhQW50b25lbmtvX2NvbmRpdGlvbihhLCBiLCBwLCBxLCByLCBzKSkJCgkJewoJCQlwcmludGYoICIlZCAlZCAlZCAlZCAlZCAlZCA9PiBCPSVzIEE9JXNcbiIsCgkJCSAgICAgICAgIGEsIGIsIHAsIHEsIHIsIHMsInllcyIsIm5vIik7CgkJfQoJCWlmICghTWF6dXJva19jb25kaXRpb24oYSwgYiwgcCwgcSwgciwgcykgCgkJICAJICAmJiBBbnRvbmVua29fY29uZGl0aW9uKGEsIGIsIHAsIHEsIHIsIHMpKQkKCQl7CgkJCXByaW50ZiggIiVkICVkICVkICVkICVkICVkID0+IEI9JXMgQT0lc1xuIiwKCQkJICAgICAgICAgYSwgYiwgcCwgcSwgciwgcywibm8iLCJ5ZXMiKTsKCQl9CgkJCQoJfQoJCQoJcmV0dXJuIDA7Cn0K