Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Duy Đức Anh Nguyễn

BÀI 2. DÃY SỐ
Cho dãy số nguyên gồm n (3 ≤ n ≤ 100) phần tử a 1 , a 2 , …, a n (-1000 ≤ a i ≤ 1000).
Nhiệm vụ của em là phải tìm tích lớn nhất của ba trong dãy n số đã cho.

INPUT
 Dòng đầu tiên chứa số nguyên dương n.
 Dòng thứ hai chứa n số nguyên a 1 , a 2 , … ,a n .
OUTPUT

 Một số nguyên duy nhất là tích lớn nhất tìm được của 3 số.
Ví dụ:

INPUT OUTPUT
7
5 2 10 1 3 2

150

2/4

4
3 -3 4 -1

12

* Ràng buộc:
 Có 70% test tất cả các phần tử trong dãy đều dương hoặc đều âm.

Đinh Duy Linh Bùi
15 tháng 4 2021 lúc 14:44

tự làm đi dễ mà:)))))

 

Nông Quang Minh
6 tháng 7 2021 lúc 10:40

dễ thì bạn làm đi mà bạn đấy k làm được bạn ấy mới hỏi mà bạn lại bảo tự làm là sao

Vũ NgỌc DuY HoÀnG
8 tháng 7 lúc 22:23

tự tin thái quá

Vũ NgỌc DuY HoÀnG
8 tháng 7 lúc 22:27
ta có thể sắp xếp dãy số theo thứ tự tăng dần, sau đó xét hai trường hợp: 1. Tích của ba số lớn nhất: Nếu tất cả các số đều dương hoặc có cả số âm và số dương, ta sẽ chọn ba số lớn nhất trong dãy. Tích của ba số này sẽ là tích lớn nhất. 2. Tích của ba số lớn nhất (có số âm): Nếu có nhiều số âm, ta cần xem xét tích của ba số âm lớn nhất và tích của hai số âm nhỏ nhất với số dương lớn nhất. So sánh hai kết quả này để tìm ra tích lớn nhất. Dưới đây là một ví dụ minh họa: Input: 7 5 2 10 1 3 2 150 Output: 150 Trong ví dụ này, dãy số là 5 2 10 1 3 2 150. Sau khi sắp xếp, ta có 1 2 2 3 5 10 150. Tích của ba số lớn nhất (10, 5, 150) là 7500. Input: 4 3 -3 4 -1 Output: 12 Trong ví dụ này, dãy số là 3 -3 4 -1. Sau khi sắp xếp, ta có -3 -1 3 4. Tích của ba số lớn nhất (4, 3, -1) là -12. Tích của hai số âm nhỏ nhất (-3, -1) với số dương lớn nhất (4) là 12. Vì 12 > -12, nên đáp án là 12. Dựa trên phân tích trên, ta có thể viết một đoạn code để giải quyết bài toán này. Python def solve(): n = int(input()) a = list(map(int, input().split())) a.sort() max_product = float('-inf') # Case 1: All positive or mixed if len(a) >= 3: max_product = max(max_product, a[-1] * a[-2] * a[-3]) # Case 2: At least two negative numbers if len(a) >= 3: max_product = max(max_product, a[0] * a[1] * a[-1]) print(max_product) solve()
Vũ NgỌc DuY HoÀnG
8 tháng 7 lúc 22:28

ko bt dung ko


Các câu hỏi tương tự
89654DAUUBUOIIIII956
Xem chi tiết
Hello1234
Xem chi tiết
Hello1234
Xem chi tiết
Hello1234
Xem chi tiết
huynh chinh
Xem chi tiết
Bảo Lê Nguyễn Vũ
Xem chi tiết
Noelle
Xem chi tiết
Hải Trần
Xem chi tiết
Dang2009 Trần
Xem chi tiết