Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

MTTRAVEL - Du lịch vòng quanh thế giới

Trên tuyến đường của xe chở khách du lịch vòng quanh thế giới xuất phát từ bến X có N khách sạn đánh số từ 1 đến N theo thứ tự xuất hiện trên tuyến đường, trong đó khách sạn N là địa điểm cuối cùng của hành trình mà tại đó tài xế bắt buộc phải dừng. Khách sạn i cách địa điểm xuất phát Ai Km (i=1, 2, …, N); A1<A2<...<AN.

Để đảm bảo sức khoẻ cho khách hàng, theo tính toán của các nhà chuyên môn, sau khi đã chạy được P (Km) xe nên dừng lại cho khách nghỉ ở khách sạn. Vì thế, nếu xe dừng lại cho khách nghỉ ở khách sạn sau khi đã đi được Q Km  thì lái xe phải trả một lượng tiền phạt là : (Q-P)2 . Để đảm bảo lịch trình tài xế không được dừng khi chưa chạy đủ P Km và phải dừng tại một khách sạn nào đó.

Ví Dụ : Với N=4, P=300, A1=250, A2=310, A3=550, A4=590. Xe bắt buộc phải dừng lại ở khách sạn 4 là địa điểm cuối cùng của hành trình. Nếu trên đường đi lái xe chỉ dừng lại tại khách sạn thứ 2 thì lượng phạt phải trả là : (310-300)2+((590-310)-300)2=500

Yêu Cầu:  Hãy xác định  xem trên tuyến đường đến khách sạn N, xe cần dừng lại nghỉ ở những khách sạn nào để tổng lượng phạt mà lái xe phải trả là nhỏ nhất.

Dữ Liệu: 

                        Dòng đầu tiên chứa số nguyên dương N (N<=10000);

                        Dòng thứ hai chứa số nguyên dương P (P<=500);

                        Dòng thứ ba chứa các số nguyên dương A1, A2, A3, ..., An. ( Ai<=2000000, i=1,2,..N)

Kết Quả: 

                        Dòng đầu tiên ghi Z là lượng phạt mà lái xe phải trả ;

                        Dòng thứ hai ghi K là số khách sạn mà lái xe cần dừng lại cho khách nghỉ;

                        Dòng thứ ba chỉ chứa chỉ số của K khách sạn mà xe dừng lại cho khách nghỉ.(Trong đó nhất thiết phải có khách sạn thứ N)

Ví Dụ:

Input

4

300

250 310 550 590

Output

500

2

2 4


Được gửi lên bởi:Đặng Minh Tiến
Ngày:2014-11-27
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC MAWK BC C NCSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG COBOL COFFEE D-CLANG D DART ELIXIR FANTOM FORTH GRV JULIA KTLN LUA NODEJS OBJC OCAML OCT PAS-FPC PIKE PROLOG PYPY3 R RACKET CHICKEN ST SQLITE SWIFT UNLAMBDA

hide comments
2020-10-22 10:54:44
Đúng r bạn :v
2020-10-22 10:53:09
không có checker à -.- + for 2 dòng vẫn AC ._.


Last edit: 2020-10-22 10:57:54
2017-09-01 16:34:58
nhớ kỹ dòng code này là dấu lớn hơn hoặc bằng ko phải là lớn hơn
if (gtmin>=b[j]+sqr(a[i]-a[j]-p)) then
2017-08-16 21:20:19 Con Bò Huyền Thoại
Đây là solution của đề bài:
https://kienthuc24h.com/bai-giai-mttravel-spoj-thptcbt-21886-du-lich-vong-quanh-the-gioi/
2015-07-14 10:25:55 Anh Vu
Chỉ mình cải tiến được không @Thắng Đam Mê?
2015-05-10 11:55:01 Thắng Ðam Mê
bài này bạn nào nghĩ ra QHĐ là đúng đó, nhưng đa phần sẽ bị đoạn này:
For i:=2 to n do
For j:=1 to i-1 do
chính chỗ này gây quá thời gian do n<=10000
ở đây vòng lặp của j ko nhất thiết phải chạy đến i-1 lần(đó chỉ là trường hợp xấu nhất) mà phải có thêm điều kiện để break nó đi thì sẽ giảm đpt xuống còn là O(n*p) thôi
2014-11-27 07:14:10 Con Bò Huyền Thoại
# test 6 có nhiều đáp án.
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.