#include <iostream>
using namespace std;
struct Section
{
float xBegin, yBegin;
float xEnd, yEnd;
};
float L(Section s1, Section s2)
{
if(s1.yBegin == s1.yEnd && s2.yBegin == s2.yEnd && s1.yBegin == s2.yBegin)
{
float x1Min = min(s1.xBegin, s1.xEnd),
x1Max = max(s1.xBegin, s1.xEnd),
x2Min = min(s2.xBegin, s2.xEnd),
x2Max = max(s2.xBegin, s2.xEnd);
if(x1Max < x2Min || x2Max < x1Min)
return 0;
return min(x1Max, x2Max) - max(x1Min, x2Min);
}
if(s1.xBegin == s1.xEnd && s2.xBegin == s2.xEnd && s1.xBegin == s2.xBegin)
{
float y1Min = min(s1.yBegin, s1.yEnd),
y1Max = max(s1.yBegin, s1.yEnd),
y2Min = min(s2.yBegin, s2.yEnd),
y2Max = max(s2.yBegin, s2.yEnd);
if(y1Max < y2Min || y2Max < y1Min)
return 0;
return min(y1Max, y2Max) - max(y1Min, y2Min);
}
return -1;
}
int main()
{
Section s1, s2;
s1.xBegin = 3.2f; s1.xEnd = -2.3f;
s1.yBegin = -5.3f; s1.yEnd = -5.3f;
s2.xBegin = -3.3f; s2.xEnd = 5.2f;
s2.yBegin = -5.3f; s2.yEnd = -5.3f;
cout << L(s1, s2) << endl;
return 0;
}
Регистрирани потребители: Google [Bot]