USACO 2019 - Sleepy Cow Herding

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: 1800 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) con bò của Farmer John cứ luôn đi lang thang đến tận những nơi xa xôi của trang trại! Ông cần bạn giúp lùa chúng về đứng gần nhau.

Cánh đồng chính của trang trại dài và hẹp — ta có thể coi nó như một trục số, trên đó một con bò có thể đứng tại bất kỳ vị trí nguyên nào. \(N\) con bò hiện đang đứng tại các vị trí nguyên khác nhau, và Farmer John muốn di chuyển chúng sao cho chúng đứng tại các vị trí liên tiếp (chẳng hạn các vị trí 3, 4, 5, 6, 7 và 8).

Đáng tiếc, những con bò khá buồn ngủ và Farmer John rất khó thu hút sự chú ý để khiến chúng di chuyển. Tại bất kỳ thời điểm nào, ông chỉ có thể khiến một con bò di chuyển nếu nó đang ở một "đầu mút" (tức là có vị trí nhỏ nhất hoặc lớn nhất trong số tất cả các con bò). Khi di chuyển một con bò, ông có thể yêu cầu nó chuyển đến bất kỳ vị trí nguyên chưa bị chiếm nào, miễn là tại vị trí mới, nó không còn là một đầu mút. Có thể thấy rằng theo thời gian, những nước đi kiểu này thường đẩy các con bò ngày càng lại gần nhau hơn.

Hãy xác định số lần di chuyển ít nhất và nhiều nhất có thể thực hiện trước khi các con bò tụ lại tại \(N\) vị trí liên tiếp.

Dữ liệu vào

Dòng đầu tiên chứa \(N\) (\(3 \leq N \leq 10^5\)). Mỗi dòng trong \(N\) dòng tiếp theo chứa vị trí nguyên của một con bò, nằm trong phạm vi \(1 \ldots 10^9\).

Dữ liệu ra

Dòng đầu tiên chứa số lần di chuyển ít nhất Farmer John cần thực hiện để đưa các con bò lại gần nhau. Dòng thứ hai chứa số lần di chuyển nhiều nhất mà ông có thể thực hiện trước khi các con bò tụ lại với nhau.

Ví dụ

Ví dụ 1

Input
3
7
4
9
Output
1
2
Giải thích

Số lần di chuyển ít nhất là 1 — nếu Farmer John chuyển con bò ở vị trí 4 đến vị trí 8 thì các con bò sẽ đứng tại các vị trí liên tiếp 7, 8, 9. Số lần di chuyển nhiều nhất là 2. Chẳng hạn, có thể chuyển con bò ở vị trí 9 đến vị trí 6, sau đó chuyển con bò ở vị trí 7 đến vị trí 5.

Nguồn

USACO 2019 February Contest, Silver — Sleepy Cow Herding

Tác giả: Matthew Fahrbach.

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: