Có một dãy các số nguyên a1, a2, ..., an. Ta chia dãy số này thành 2 dãy con như sau: – Dãy con thứ nhất gồm k số đầu tiên trong dãy đã cho và tổng các phần tử của dãy con này là T1. – Dãy con thứ hai gồm các số còn lại của dãy số đã cho và tổng các phần tử của dãy con này là T2. Yêu cầu: Tìm số nguyên dương k là độ dài của dãy con thứ nhất sao cho|T1-T2| nhỏ nhất. Chú ý: Nếu có hơn một số k thỏa mãn thì ghi ra số k nhỏ nhất. Cách làm: Tạo một mảng T[1..n] với T[i] = a1 + a2 + ... + ai. Xét hai dãy {a1, a2,...ak} có tổng là T1 và dãy {ak+1, ak+2, ...,an} có tổng là T2. Khi đó, ta có: T1 = T[k] và T2 = T[n] – T[k] => |T1 – T2|= |T[n] – 2*T[k]| Dùng vòng lặp để duyệt tất cả các biểu thức |T[n]–2T[i]| với . Trong các biểu thức có GTNN, ta chọn giá trị i nhỏ nhất là số cần tìm GIUP EM VOI A CAN GAP LAMMM

Các câu hỏi liên quan