USACO 2013 - Hill Walk

Xem PDF



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, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) ngọn đồi (\(1 \le N \le 100\,000\)). Mỗi ngọn đồi có dạng một đoạn thẳng từ \((x1, y1)\) đến \((x2, y2)\), trong đó \(x1 < x2\)\(y1 < y2\). Không có hai đoạn thẳng nào giao nhau hoặc chạm nhau, kể cả tại các đầu mút; ngoài ra, ngọn đồi đầu tiên thỏa mãn \((x1, y1) = (0,0)\).

Bò Bessie bắt đầu tại \((0,0)\) trên ngọn đồi đầu tiên. Mỗi khi ở trên một ngọn đồi, Bessie leo lên cho tới khi đến đầu cuối của nó. Sau đó cô nhảy khỏi mép đồi. Nếu đáp xuống một ngọn đồi khác, cô tiếp tục đi trên ngọn đồi đó; nếu không, cô rơi xuống rất xa cho tới khi đáp an toàn trên một tấm đệm gối tại \(y = -\infty\). Mỗi ngọn đồi \((x1, y1) \to (x2, y2)\) phải được coi là chứa điểm \((x1, y1)\) nhưng không chứa điểm \((x2, y2)\). Do đó, Bessie sẽ đáp xuống ngọn đồi nếu cô rơi từ phía trên nó tại vị trí có \(x = x1\), nhưng sẽ không đáp xuống ngọn đồi nếu cô rơi từ phía trên nó tại \(x = x2\).

Hãy đếm tổng số ngọn đồi mà Bessie chạm vào tại một thời điểm nào đó trong hành trình.

Dữ liệu vào

Dòng đầu tiên chứa số ngọn đồi \(N\).

Dòng thứ \(i+1\) trong \(N\) dòng tiếp theo chứa bốn số nguyên \((x1,y1,x2,y2)\) mô tả ngọn đồi thứ \(i\). Mỗi số nguyên nằm trong khoảng từ 0 đến \(1\,000\,000\,000\).

Dữ liệu ra

In ra số ngọn đồi Bessie chạm vào trong hành trình.

Ví dụ

Ví dụ 1

Input
4
0 0 5 6
1 0 2 1
7 2 8 5
3 0 7 7
Output
3
Giải thích

Có bốn ngọn đồi. Ngọn đồi đầu tiên chạy từ \((0,0)\) đến \((5,6)\), và những ngọn đồi còn lại được mô tả tương tự.

Bessie đi trên các ngọn đồi số 1, số 4 và cuối cùng là số 3.

Nguồn

USACO 2013 March Contest, Gold — Problem 2: Hill Walk

Tác giả đề: Travis Hance, 2013.

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: