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
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
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)