Bài tập  /  Bài đang cần trả lời

Dòng đầu tiên chứa tổng lượng xăng dầu cần dùng cho việc đưa các đoàn đi thăm quan (không tính lượt về)

Bài 1/2023 - Tổ chức tham quan
Trong đợt tổ chức đi tham quan danh lam thắng cảnh của thành phố Hồ Chí Minh, Ban tổ chức hội thi Tin
học trẻ tổ chức cho N đoàn ( đánh từ số 1 đến N) mỗi đoàn đi thăm quan một địa điểm khác nhau. Đoàn thứ i
đi thăm địa điểm ở cách Khách sạn Hoàng Đế di km (i=1,2,...., N). Hội thi có M xe taxi đánh số từ 1 đến M
(MN) để phục vụ việc đưa các đoàn đi thăm quan. Xe thứ j có mức tiêu thụ xăng là vj đơn vị thể tích/km.
Yêu cầu: Hãy chọn N xe để phục vụ việc đưa các đoàn đi thăm quan, mỗi xe chỉ phục vụ một đoàn, sao cho
tổng chi phí xăng cần sử dụng là ít nhất.
Dữ liệu: File văn bản P2.INP:
- Dòng đầu tiên chứa hai số nguyên dương N, M (NM200);
- Dòng thứ hai chứa các số nguyên dương d 1 , d 2 , ..., dN;
- Dòng thứ ba chứa các số nguyên dương v 1 , v 2 , ..., vM.
- Các số trên cùng một dòng được ghi khác nhau bởi dấu trắng.
Kết quả: Ghi ra file văn bản P2.OUT:
- Dòng đầu tiên chứa tổng lượng xăng dầu cần dùng cho việc đưa các đoàn đi thăm quan (không tính lượt
về);
- Dòng thứ i trong số N dòng tiếp theo ghi chỉ số xe phục vụ đoàn i (i=1, 2, ..., N).
Ví dụ:

P2.INP P2.OUT
3 4
7 5 9
17 13 15 10

256
2
3
4
2 trả lời
Hỏi chi tiết
123
0
0
Thông Phạm Hữu
25/08/2023 16:16:42
def calPetrol() :
f = open("input.txt", "r")
# print(f.readline())
param_1,param_2,param_3 = f.readline(),f.readline(),f.readline()
print( param_1,param_2,param_3)
n_array = [int(_) for _ in param_2.split(" ")]
car_arr = [int(_) for _ in param_3.split(" ")]
car_arr_sort = [int(_) for _ in param_3.split(" ")]
car_arr_sort.sort()
n_array.sort(reverse = True)
res = 0
for _ in range(len(n_array)) :
res += n_array[_] * car_arr_sort[_]
print(res)
list_sort = []
for _ in range(len(n_array)):
list_sort.append(car_arr.index(car_arr_sort[_]) + 1)
list_sort.sort()
for _ in list_sort :
print(_)
calPetrol()

 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập
0
0
NoName
26/08/2023 19:31:49
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct Group {
    int index;
    int distance;
};

struct Taxi {
    int index;
    int fuelConsumption;
};

bool compareGroups(const Group &a, const Group &b) {
    return a.distance < b.distance;
}

int main() {
    int N, M;
    cin >> N >> M;

    vector<Group> groups(N);
    for (int i = 0; i < N; ++i) {
        cin >> groups[i].distance;
        groups[i].index = i + 1;
    }

    vector<Taxi> taxis(M);
    for (int i = 0; i < M; ++i) {
        cin >> taxis[i].fuelConsumption;
        taxis[i].index = i + 1;
    }

    sort(groups.begin(), groups.end(), compareGroups);
    sort(taxis.begin(), taxis.end(), [](const Taxi &a, const Taxi &b) {
        return a.fuelConsumption < b.fuelConsumption;
    });

    int totalFuel = 0;
    vector<int> assignments(N);

    for (int i = 0; i < N; ++i) {
        totalFuel += groups[i].distance * taxis[i].fuelConsumption;
        assignments[groups[i].index - 1] = taxis[i].index;
    }

    cout << totalFuel << endl;
    for (int assignment : assignments) {
        cout << assignment << endl;
    }

    return 0;
}
 

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập Tin học Lớp 8 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k