Nội dung Bài tập
Mã:
[LTHDT17]GK04
Tên:
Grab02
Dạng thi:
oi
Thang điểm:
10 điểm
Giới hạn thời gian:
1 giây
Giới hạn bộ nhớ:
256 MB
Được tạo bởi:
tamtd

Grab là 1 công ty start-up về lĩnh vực chuyên chở hành khách. Để vận hành hệ thống, công ty cần một hệ thống GrabBike để quản lý thông tin và điều phối xe. Mỗi xe (Bike) sẽ có các thông tin sau:

- Mã số xe (ID), kiểu số, mặc định là 0

- Biển số xe (bike number), kiểu chuỗi, mặc định là chuỗi rỗng

- Tên tài xế (biker name), kiểu chuỗi, mặc định là chuỗi rỗng

- Số km đã chạy trong tháng (quota), kiểu số, mặc định là 0

- Vị trí hiện tại, được biểu diễn bằng kinh độ (longitude) và vĩ độ (latitude)

Khi khách hàng đặt yêu cầu, hệ thống sẽ báo giá vận chuyển dựa vào khoảng cách giữa điểm đi và điểm đến do khách hàng cung cấp. Sau đó, hệ thống sẽ tự động chọn ra 1 xe để đón khách, việc lựa chọn này sẽ dựa vào các tiêu chí lần lượt như sau:

- Vị trí của xe phải gần với vị trí của khách hàng nhất (tính theo công thức khoảng cách 2 điểm trong mặt phẳng 2 chiều).

- Số km đã chạy trong tháng là ít nhất.

Các tiêu chí lựa chọn nhằm đảm bảo khách hàng không phải đợi xe quá lâu và các xe sẽ được phân phối hoạt động đều nhau. Sau khi xe đã đưa khách đến nơi, số km đã chạy trong tháng của xe sẽ được cập nhật lại bằng việc cộng thêm số km quãng đường vừa chạy.

 

Bảng giá Grabbike

2km đầu tiên

11,900

Sau 2km đầu tiên

3,800/km

 

Yêu cầu:

1. Viết hàm lựa chọn xe (PickBike) để đón khách.

         Bike PickBike(Bike* bike_list, double longitude_passenger, double latitude_ passenger);

2. Xây dựng phương thức chở khách (Transport) cho lớp Bike. Phương thức này thực hiện việc cập nhật lại số km đã chạy trong tháng; sau đó trả về số tiền khách phải trả dựa theo số km đã chạy (tính theo bảng giá)

void Transport(double distance);

Input:

- Dòng đầu tiên cho biết các thông tin sau: số lượng xe, tọa độ khách hàng, số km di chuyển. Mỗi thông tin cách nhau 1 khoảng trắng

- N dòng tiếp theo, mỗi dòng là 1 bộ thông tin của mỗi xe, mỗi thông tin cách nhau 1 khoảng trắng

Output:

- Dòng đầu tiên: thông tin xe được chọn sau khi đã cập nhật số km di chuyển, xuất theo định dạng như câu 1.

- Dòng thứ hai: số tiền khách phải trả

 

Ví dụ:

Input

Output

3 10.123 -3.002 9

1 59V1-1234 Nam 100 10.123 -3.002

2 59X2-5678 Binh 150 1.023 24.073

3 78B2-4321 Quan 85 10.123 -3.002

4 59Y3-2345 Tuan 90 -5.305 3.211

{3:78B2-4321:Quan:85:10.123:-3.002}

38500

 


    Quảng cáo
       Ngôn ngữ : 

       Theme : 
Mời bạn soạn code



		



      Ai có thể xem bài này : 

Thông tin



Phần thảo luận