- Mã:
- [LTHDT17]GK03
- Tên:
- Grab01
- 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.
Yêu cầu:
1. Xây dựng lớp đối tượng Bike với đầy đủ thành phần
dữ liệu như mô tả, thể hiện rõ tính đóng gói và che dấu dữ liệu.
2. Xây dựng các phương thức khởi tạo cho lớp Slot:
- Không tham số, với các thông tin mặc định.
- Có tham số, với đầy đủ các tham số tương ứng.
- Sao chép
3. Xây dựng hàm nạp chồng toán tử nhập và xuất cho lớp
đối tượng Bike.
Input:
- Dòng đầu tiên cho biết số lượng xe
- 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:
- N dòng là thông tin của N xe theo định dạng
{ID:bike number:biker_name:quota:longitude:latitude}
Ví dụ:
Input: |
Output: |
3 1 59V1-1234 Nam 100 10.123 -3.002 2 59X2-5678 Binh 150 1.023 24.073 3 59Y3-2345 Tuan 90 -5.305 3.211 |
{1:59V1-1234:Nam:100:10.123:-3.002} {2:59X2-5678:Binh:150:1.023:24.073} {3:59Y3-2345:Tuan:90:-5.305:3.211} |
Theme :
Mời bạn soạn code