Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
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. |