Hãy cho biết diện tích lớn nhất của khung cửa mà An có thể làm được
Bài 2. Nhà thú cưng
An làm một ngôi nhà cho chú chó của mình bằng những thanh gỗ. Phần ngôi nhà An đã làm xong, chỉ còn thiếu một chiếc cửa hình chữ nhật. Hiện tại, An đang có n thanh gỗ, các thanh được đánh số từ 1 đến n, thanh thứ i có độ dài là ai. An muốn làm 1 chiếc cửa khung hình chữ nhật càng to càng tốt. Khung cửa sẽ được làm từ 4 thanh gỗ
Yêu cầu: Hãy cho biết diện tích lớn nhất của khung cửa mà An có thể làm được
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
// Đọc dữ liệu vào và đếm số lần xuất hiện của mỗi chiều dài for (int i = 0; i < n; i++) { cin >> a[i]; count[a[i]]++; }
// Lưu trữ các chiều dài có ít nhất 2 thanh vector<int> valid_lengths;
// Lọc các chiều dài có ít nhất 2 thanh for (auto& entry : count) { if (entry.second >= 2) { valid_lengths.push_back(entry.first); } }
// Sắp xếp các chiều dài hợp lệ theo thứ tự giảm dần sort(valid_lengths.rbegin(), valid_lengths.rend());
// Tìm diện tích lớn nhất có thể if (valid_lengths.size() < 2) { cout << 0 << endl; // Không đủ thanh gỗ để tạo cửa } else { int max_area = 0;
// Tìm hai cặp thanh có độ dài giống nhau for (int i = 0; i < valid_lengths.size(); i++) { if (count[valid_lengths[i]] >= 4) { // Nếu có ít nhất 4 thanh gỗ cùng chiều dài, ta có thể tạo 2 cạnh cửa từ một chiều dài max_area = max(max_area, valid_lengths[i] * valid_lengths[i]); } if (i + 1 < valid_lengths.size()) { max_area = max(max_area, valid_lengths[i] * valid_lengths[i + 1]); } }
cout << max_area << endl; }
return 0; }
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ờ