Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
VORAIN - Chuyện Mưa |
Mưa từng con phố có nhớ bóng dáng em đi cuối thu, đông về hè sang vội vàng quá
Mưa từng đêm vắng, mưa ơi cứ rơi phố xa, anh đi tìm yêu đương chiều qua
Ai vội vàng đi ngang lòng người mang theo bao yêu đương thoáng qua như là cơn mưa rào
Chuyện mưa
Có bao giờ bạn tự hỏi, những giọt mưa kia rồi sẽ về đâu? Chúng ta hãy cùng nhau trả lời câu hỏi này nhé.
Hình dung thế giới như một mặt phẳng Oxy, tại mỗi thời điểm có 1 trong 3 loại sự kiện xảy ra:
- Một đoạn thẳng nối điểm (x1, y1) và (x2, y2) xuất hiện trên mặt phẳng
- Một đoạn thẳng được thêm vào trước đó biến mất
- Một giọt mưa xuất hiện tại điểm (x, y) và rơi xuống. Giọt mưa rơi theo phương thẳng đứng từ điểm (x, y) về điểm (x, 0).
Nhiệm vụ của bạn là xác định xem, giọt mưa rơi xuống mặt đất, hay rơi vào một đoạn thẳng.
Input
Dòng đầu chứa số nguyên dương Q (Q ≤ 105), cho biết số sự kiện xảy ra.
Q dòng tiếp theo, mỗi dòng cho biết 1 sự kiện xảy ra. Mỗi dòng có 1 trong 3 dạng:
- 1 x1 y1 x2 y2: Một đoạn thẳng xuất hiện, nối điểm (x1, y1) và (x2, y2). (1 ≤ x1, y1, x2, y2 ≤ 106, x1 ≠ x2). Không có 2 đoạn thẳng nào có điểm chung.
- 2 i: Đoạn thẳng xuất hiện thứ i (tính cả những đoạn đã bị xóa) biến mất (1 ≤ i ≤ số đoạn thẳng đã xuất hiện). Nếu đoạn thẳng thứ i đã biến mất trước đó, sự kiện này không có bất kỳ ảnh hưởng gì.
- 3 x y: Một giọt mưa xuất hiện ở tọa độ (x, y). (1 ≤ x, y ≤ 106). Chú ý rằng giọt mưa có thể nằm trên đoạn thẳng.
Output
Với mỗi sự kiện loại 3, in ra 0 nếu giọt mưa sẽ rơi xuống đất mà không chạm vào bất kỳ đoạn thẳng nào. Ngược lại, in ra thứ tự của đoạn thẳng đầu tiên mà giọt mưa chạm vào.
Giới hạn
- Trong 30% test đầu tiên, Q ≤ 103.
- Trong 30% test tiếp theo, trong các sự kiện loại 1, 1 ≤ x1, y1, x2, y2 < 106. Trong các sự kiện loại 3, y = 106.
- Mọi giá trị x, y đều là số nguyên.
- Thời gian chạy cho tất cả các test: 3 giây. Riêng thời gian chạy cho test đề bài là 0.5s.
Chú ý:
- Trong thời gian thi, bài của bạn chỉ được chấm với test đề bài.
- Nếu bài của bạn chạy đúng trên máy mình, nhưng sai khi nộp lên SPOJ, bạn có thể kiểm tra ở ideone. Chú ý khi submit lên ideone, để chế độ Secret để người khác không đọc được code của bạn.
Example
Input: 12 1 1 2 3 2 3 1 1 3 2 1 3 3 1 3 1 2 3 2 2 3 3 2 3 1 3 3 2 3 3 3 3 2 1 3 2 2 Output: 0 0 0 1 1 1 1 1 1 0
Được gửi lên bởi: | VOJ Team |
Ngày: | 2014-12-21 |
Thời gian chạy: | 0.5s-3s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | Tất cả ngoại trừ: ASM64 GOSU PERL6 PYPY RUST SED |
Nguồn bài: | VO 2015 |