LTC_1B - Trái phải

View as PDF

Submit solution


Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C#, C++, Go, Java, JavaScript, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho một đường thẳng đi qua hai điểm ~A(x_A, y_A)~, ~B(x_B, y_B)~, và một điểm ~C(x_C, y_C)~ tự do.

Hãy cho biết điểm ~C~ nằm trên, bên trái hay bên phải đường thẳng ~AB~. Biết rằng vị trí này được xác định bằng cách đứng tại điểm ~A~ và nhìn về hướng tới điểm ~B~.

Input

  • Gồm 3 dòng, mỗi dòng gồm 2 số nguyên lần lượt là toạ độ ~x~ và ~y~ của 3 điểm ~A~, ~B~, ~C~.
  • ~(-10^9 \leq x_{A,B,C} , y_{A,B,C} \leq 10^9)~.

  • Input sẽ có dạng:

xA yA
xB yB
xC yC

Output

  • Gồm 1 dòng gồm 1 số nguyên mô tả tương quan vị trí của điểm ~C~ so với đoạn thẳng ~AB~.
  • Nếu nằm bên trái, in ra ~-1~.
  • Nều nằm bên phải, in ra ~1~.
  • Nếu nằm trên đường thẳng chứa ~AB~, in ra ~0~.

Sample

Input #1
1 1
5 3
2 3
Output #1
-1
Input #2
0 2
10 1
-1 2
Output #2
1
Input #3
1 1
5 3
3 2
Output #3
0

Comments

Please read the guidelines before commenting.



  • -4
    dinhvantung0611  commented on Jan. 14, 2024, 8:28 a.m.

    Bài này mình hơi thắc mắc chút:

    lời giải bảo dùng tích có hướng nhưng tích có hướng chỉ dùng trong không gian thôi mà. Đề và lời giải rõ lại là tích vô hướng.

    Với cả tích có hướng của 2 vector a(xa, ya) và b(xb, yb) = |a|.|b|.cos(a, b) = xa.xb + ya.yb chứ mng sao lại là xa.yb - ya.xb vậy ạ. Mong cao nhân chỉ giáo


    • 0
      saiogama  commented on July 17, 2024, 1:32 p.m.

      theo mình thì mình nghĩ thế này: ta có : vector AB = (xB - xA,yB - yA) và vector AC = (xC - xA,yC - yA) ==> tích có hướng của 2 vector là : (xB - xA).(yC - yA) - (yB - yA).(xC - xA)

      Còn về tích vô hướng thì chắc là dùng để tính góc giữa 2 vector,kiểm tra vuông góc(vì có cos trong công thức). bài này thì dùng tích có hướng là đúng vì để xác định tương đối của 1 điểm so với 1 đoạn thẳng nhé bạn