Trang chủ Tin Học Lớp 5 Thang máy chỉ giới hạn tối đa khối lượng mang...

Thang máy chỉ giới hạn tối đa khối lượng mang là 500kg. Trước cửa thang máy có N người, mỗi người có trọng lượng hi (1 hi N). Yêu cầu Chọn số người vào thang

Câu hỏi :

Thang máy chỉ giới hạn tối đa khối lượng mang là 500kg. Trước cửa thang máy có N người, mỗi người có trọng lượng hi (1 hi N). Yêu cầu Chọn số người vào thang máy sao cho không vượt quá khối lượng mang và số người đi là nhiều nhất. Dữ liệu Dòng 1 ghi một số nguyên N là số lượng người trước cửa thang máy (1 N 100). Dòng 2 ghi N số nguyên cách nhau một dấu cách là cân nặng của mỗi người. Kết quả Dòng 1 ghi tổng khối lượng của số người được chọn đi. Dòng 2 ghi trọng lượng của mỗi người được chọn, mỗi số cách nhau một dấu cách (Không thay đổi thứ tự của từng người). Ví dụ INPUT 12 60 70 30 15 17 80 16 75 90 85 40 75 OUTPUT 478 60 70 30 15 17 80 16 75 40 75 Code C++ chưa học vector nên làm ơn ko dùng :v

Lời giải 1 :

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    int b[n],a[n];
    for (int i=0; i<n; i++) {
        cin >> a[i];
        b[i]=a[i];
    }
    for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) if (a[i]>a[j]) {
        int tg=a[i];
        a[i]=a[j];
        a[j]=tg;
    }
    int s=0,index=0;
    for (int i=0; i<n; i++) {
        s+=a[i];
        index++;
        if (s>500) {
            s-=a[i];
            break;
        }
    }
    cout << s << endl;
    for (int i=0; i<n; i++) {
        for (int j=0; j<index-1; j++) if (b[i]==a[j]) {
            cout << b[i] << " ";
            break;
        }
    }
}

Thảo luận

-- 2 for là sao bạn
-- for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) if (a[i]>a[j]) đoạn này á
-- mình sắp xếp lại mảng theo thứ tự tăng dần thôi
-- nếu chưa biết thì bạn cần phải học lại

Lời giải 2 :

int main() 
    int n;
    cin >> n:
    int b[n],a[n]
    for (int i=0; i<n; i++) 
        cin >> a[i]
        b[i]=a[i]
    for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) if (a[i]>a[j]) :
        int tg=a[i]
        a[i]=a[j]
        a[j]=tg
    int s=0,index=0
    for (int i=0; i<n; i++) 
        s+=a[i];
        index++;
        if (s>500) 
            s-=a[i];
            break;
    cout << s << endl;
    for (int i=0; i<n; i++) 
        for (int j=0; j<index-1; j++) if (b[i]==a[j]) 
            cout << b[i] << " ":
            break

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 5

Lớp 5 - Là năm cuối cấp tiểu học, áp lực thi cử nhiều mà sắp phải xa trường lớp, thầy cô, ban bè thân quen. Đây là năm mà các em sẽ gặp nhiều khó khăn nhưng các em đừng lo nhé mọi chuyện sẽ tốt lên thôi !

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247