[CSES 2190] Line Segment Intersection

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Cho hai đoạn thẳng: đoạn thứ nhất đi qua các điểm ~(x\_1,y\_1)~ và ~(x\_2,y\_2)~, và đoạn thứ hai đi qua các điểm ~(x\_3,y\_3)~ và ~(x\_4,y\_4)~.

Nhiệm vụ của bạn là xác định xem các đoạn thẳng có giao nhau hay không, tức là chúng có ít nhất một điểm chung.

Dữ liệu vào

Dòng đầu tiên chứa số nguyên ~t~: số lượng bộ test.

Sau đó là ~t~ dòng mô tả các bộ test. Mỗi dòng chứa tám số nguyên ~x\_1~, ~y\_1~, ~x\_2~, ~y\_2~, ~x\_3~, ~y\_3~, ~x\_4~ và ~y\_4~.

Kết quả

Với mỗi bộ test, in ra "YES" nếu các đoạn thẳng giao nhau và "NO" nếu ngược lại.

Giới hạn

  • ~1 \le t \le 10^5~
  • ~-10^9 \le x\_1, y\_1, x\_2, y\_2, x\_3, y\_3, x\_4, y\_4 \le 10^9~
  • ~(x\_1,y\_1) \neq (x\_2,y\_2)~
  • ~(x\_3,y\_3) \neq (x\_4,y\_4)~

Ví dụ

Dữ liệu vào:

5
1 1 5 3 1 2 4 3
1 1 5 3 1 1 4 3
1 1 5 3 2 3 4 1
1 1 5 3 2 4 4 1
1 1 5 3 3 2 7 4

Kết quả:

NO
YES
YES
YES
YES

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.