Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- using namespace std;
- int main() {
- long long ax1, ay1, ax2, ay2, bx1, by1, bx2, by2;
- cin >> ax1 >> ay1 >> ax2 >> ay2 >> bx1 >> by1 >> bx2 >> by2;
- int sign1, sign2, sign3, sign4;
- long long s1 = (ax2 - ax1) * (by1 - ay1) - (bx1 - ax1) * (ay2 - ay1);
- long long s2 = (ax2 - ax1) * (by2 - ay2) - (bx2 - ax1) * (ay2 - ay1);
- long long s3 = (bx2 - bx1) * (ay1 - by1) - (ax1 - bx1) * (by2 - by1);
- long long s4 = (bx2 - bx1) * (ay2 - by1) - (ax2 - bx1) * (by2 - by1);
- if (ax1 > ax2) {
- swap(ax1, ax2);
- }
- if (bx1 > bx2) {
- swap(bx1, bx2);
- }
- int dx1 = max(ax1, bx1);
- int dx2 = min(ax2, bx2);
- if (ay1 > ay2) {
- swap(ay1, ay2);
- }
- if (by1 > by2) {
- swap(by1, by2);
- }
- int dy1 = max(ay1, by1);
- int dy2 = min(ay2, by2);
- if (s1 < 0)
- sign1 = -1;
- else if (s1 == 0)
- sign1 = 0;
- else sign1 = 1;
- if (s2 < 0)
- sign2 = -1;
- else if (s1 == 0)
- sign2 = 0;
- else sign2 = 1;
- if (s3 < 0)
- sign3 = -1;
- else if (s1 == 0)
- sign3 = 0;
- else sign3 = 1;
- if (s4 < 0)
- sign4 = -1;
- else if (s1 == 0)
- sign4 = 0;
- else sign4 = 1;
- if (sign1 * sign2 == 0 && sign3 * sign4 == 0 && dx2 >= dx1 && dy2 >= dy1) {
- cout << "Yes";
- return 0;
- }
- if (sign1 * sign2 < 0 && sign3 * sign4 < 0)
- cout << "Yes";
- else cout << "No";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement