- 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 |
Theme :
Mời bạn soạn code