Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- int yesno(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
- double p, q;
- p = 0;
- q = 0;
- if (x1 == y1 && x1 == x2 && x1 == y2 && x1 != x3 && x3 == x4 && x3 == y3 && x3 == y4) {
- return 0;
- } else {
- int a_1 = ((x4 - x3)*(y1 - y3) - (y4 - y3)*(x1 - x3));
- int a_2 = ((y4 - y3)*(x2 - x1) - (x4 - x3)*(y2 - y1));
- int a_3 = ((x2 - x1)*(y1 - y3) - (y2 - y1)*(x1 - x3));
- if (a_2 != 0) {
- p = a_1 / a_2;
- q = a_3 / a_2;
- }
- if (y1 == y2 && y1 == y3 && y1 == y4) {
- if (x3 > x2 && x3 > x1 && x4 > x1 && x4 > x2) {
- return 0;
- } else {
- return 1;
- }
- } else if (x1 == x2 && x1 == x3 && x1 == x4) {
- if (y3 > y2 && y3 > y1 && y4 > y1 && y4 > y2) {
- return 0;
- } else {
- return 1;
- }
- } else if (a_2 == 0 && a_1 == 0 && a_3 != 0) {
- return 0;
- } else if (a_2 == 0 && a_1 != 0 && a_3 == 0) {
- return 0;
- } else if (a_2 == 0 && a_1 != 0 && a_3 != 0) {
- return 0;
- } else if (((p >= 0) && (p <= 1)) && ((q >= 0) && (q <= 1))) {
- return 1;
- } else if (((p >= 0) && (p <= 1)) || ((q >= 0) && (q <= 1))) {
- return 1;
- } else {
- return 0;
- }
- }
- }
- int main() {
- int x1, x2, x3, x4, y1, y2, y3, y4;
- std::cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
- if (yesno(x1, y1, x2, y2, x3, y3, x4, y4) == 1) {
- std::cout << "YES" << std::endl;
- } else {
- std::cout << "NO" << std::endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement