Trò chơi- (Olympic 30/4 K11 - 2021)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1700 Thời gian: 2.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Trong thời gian ở nhà, Phúc và Hạnh chơi một trò chơi liên quan tới hình học như sau. Trong mặt phẳng hai chiều, Phúc và Hạnh đặt lên các đoạn thẳng. Các đoạn này song song với trục X hoặc trục Y. Sau khi đặt các đoạn thẳng, Phúc và Hạnh cùng đếm số lượng đoạn cắt nhau. Hai đoạn được gọi là cắt nhau khi chúng có điểm chung, kể cả ở các đầu mút. Chú ý rằng hai đoạn cùng song song với trục X hoặc cùng song song với trục Y thì không bao giờ cắt nhau. Ai đếm xong trước, người đó sẽ chiến thắng trò chơi này.

Phúc và Hạnh đều đã đếm xong, tuy nhiên họ không chắc rằng ai đúng, ai sai. Bạn hãy dùng khả năng lập trình của mình để tính kết quả của trò chơi này nhé.

Yêu cầu: Hãy viết chương trình đọc vào \(N\) đoạn thẳng, tính số cặp đoạn thẳng cắt nhau.

Input

  • Dòng đầu chứa số nguyên \(N\) \((2 \leq N \leq 2 \times 10^5)\), số đoạn thẳng.
  • \(N\) dòng tiếp theo, mỗi dòng chứa bốn số nguyên, lần lượt là tọa độ X và Y của điểm thứ nhất và tọa độ X và Y của điểm thứ hai tạo nên đoạn thẳng. Đảm bảo đoạn thẳng song song với trục X hoặc trục Y, nghĩa là hai giá trị X bằng nhau hoặc hai giá trị Y bằng nhau. Đảm bảo hai điểm này khác nhau.
  • Tọa độ của các điểm là số nguyên có giá trị tuyệt đối không vượt quá \(10^9\).

Output

  • Ghi ra duy nhất một số nguyên là số cặp đoạn thẳng cắt nhau. Nhắc lại, chỉ có một đoạn thẳng song song với trục X và một đoạn thẳng song song với trục Y thì mới có thể cắt nhau.

Example

Test 1

Input
3
-2 0 2 0
-1 0 1 0
0 -1 0 1
Output
2

Scoring

  • \(50\%\) số điểm của bài tương ứng với các test có \(N \leq 5000\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: