Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. #include<iostream>
  2. int yesno(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
  3.     double p, q;
  4.     p = 0;
  5.     q = 0;
  6.     if (x1 == y1 && x1 == x2 && x1 == y2 && x1 != x3 && x3 == x4 && x3 == y3 && x3 == y4) {
  7.         return 0;
  8.     } else {
  9.         int a_1 = ((x4 - x3)*(y1 - y3) - (y4 - y3)*(x1 - x3));
  10.         int a_2 = ((y4 - y3)*(x2 - x1) - (x4 - x3)*(y2 - y1));
  11.         int a_3 = ((x2 - x1)*(y1 - y3) - (y2 - y1)*(x1 - x3));
  12.         if (a_2 != 0) {
  13.             p = a_1 / a_2;
  14.             q = a_3 / a_2;
  15.         }
  16.         if (y1 == y2 && y1 == y3 && y1 == y4) {
  17.             if (x3 > x2 && x3 > x1 && x4 > x1 && x4 > x2) {
  18.                 return 0;
  19.             } else {
  20.                 return 1;
  21.             }
  22.         } else if (x1 == x2 && x1 == x3 && x1 == x4) {
  23.            if (y3 > y2 && y3 > y1 && y4 > y1 && y4 > y2) {
  24.                 return 0;
  25.            } else {
  26.                 return 1;
  27.             }
  28.            } else  if (a_2 == 0 && a_1 == 0 && a_3 != 0) {
  29.              return 0;
  30.         } else if (a_2 == 0 && a_1 != 0 && a_3 == 0) {
  31.              return 0;
  32.         } else if (a_2 == 0 && a_1 != 0 && a_3 != 0) {
  33.              return 0;
  34.         } else if (((p >= 0) && (p <= 1)) && ((q >= 0) && (q <= 1))) {
  35.              return 1;
  36.         } else if (((p >= 0) && (p <= 1)) || ((q >= 0) && (q <= 1))) {
  37.              return 1;
  38.         } else {
  39.              return 0;
  40.         }
  41.     }
  42. }
  43. int main() {
  44.     int x1, x2, x3, x4, y1, y2, y3, y4;
  45.     std::cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
  46.     if (yesno(x1, y1, x2, y2, x3, y3, x4, y4) == 1) {
  47.         std::cout << "YES" << std::endl;
  48.     } else {
  49.         std::cout << "NO" << std::endl;
  50.       }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement