fork download
  1. #include <iostream>
  2. #include <math.h>
  3. using namespace std;
  4.  
  5. int main() {
  6. int i;
  7. double a1, a2, b1, b2, c1, c2, x, y, f, g;
  8. scanf("%lf %lf %lf %lf %lf %lf %lf %lf", &a1, &a2, &b1, &b2, &c1, &c2, &x, &y);
  9. f = (y - a2)*(b1 - a1) - (x - a1)*(b2 - a2);
  10. g = (c2 - a2)*(b1 - a1) - (c1 - a1)*(b2 - a2);
  11. if (f*g > 0) { // Проверяем, лежат ли точки (x,y) и C по одну сторону от прямой AB
  12. f = (y - a2)*(c1 - a1) - (x - a1)*(c2 - a2);
  13. g = (b2 - a2)*(c1 - a1) - (b1 - a1)*(c2 - a2);
  14. if (f*g > 0) { // Проверяем, лежат ли точки (x,y) и B по одну сторону от прямой AC
  15. f = (y - b2)*(c1 - b1) - (x - b1)*(c2 - b2);
  16. g = (a2 - b2)*(c1 - b1) - (a1 - b1)*(c2 - b2);
  17. if (f*g > 0) { // Проверяем, лежат ли точки (x,y) и A по одну сторону от прямой BC
  18. printf("Да \n");
  19. }
  20. else {
  21. printf("Нет \n");
  22. }
  23. }
  24. else {
  25. printf("Нет \n");
  26. }
  27. }
  28. else {
  29. printf("Нет \n");
  30. }
  31. return 0;
  32. }
Success #stdin #stdout 0s 3416KB
stdin
0 0 1 0 1 1 0.5 0.25
stdout
Да