trang chủ / bài tập / runprize

Chạy đua nhận thưởng

Đề bài

Mô tả

Bạn và một người bạn cùng tham gia một trò chơi thu thập phần thưởng. Có n phần thưởng nằm trên một đường thẳng, phần thưởng thứ i ở vị trí ai. Các vị trí đều phân biệt.

Bạn xuất phát tại vị trí 1, người bạn xuất phát tại vị trí 106 (không có phần thưởng nào nằm ở hai vị trí này). Mỗi giây, mỗi người có thể di chuyển từ vị trí x sang x+1 hoặc x1. Khi một người đang đứng đúng tại vị trí của một phần thưởng thì nhặt được nó ngay lập tức. Việc mang phần thưởng không làm chậm tốc độ di chuyển.

Hai người di chuyển đồng thời và cùng lúc. Hãy phân công ai nhặt phần thưởng nào sao cho tổng thời gian để thu thập hết tất cả phần thưởng là nhỏ nhất. Thời gian tính là thời điểm mà cả hai người đã hoàn thành phần việc của mình.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n, số lượng phần thưởng.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an, các vị trí của phần thưởng, cho theo thứ tự tăng dần. Không có hai phần thưởng nào cùng vị trí.

Dữ liệu ra

  • In ra một số nguyên là số giây nhỏ nhất cần để thu thập hết tất cả phần thưởng.

Ràng buộc

  • 1n105
  • 2ai1061

Ví dụ

Input Output Giải thích
3
2 3 9
8 Bạn tự nhặt cả ba phần thưởng: nhặt phần thưởng ở vị trí 2 sau 1 giây, ở vị trí 3 sau 2 giây, ở vị trí 9 sau 8 giây.
2
2 999995
5 Bạn nhặt phần thưởng ở vị trí 2 mất 1 giây, người bạn nhặt phần thưởng ở vị trí 999995 mất 5 giây. Hai người làm đồng thời nên tổng thời gian là 5.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0