CHIAKEO - Chia kẹo
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: ARSENAL1886

Có N gói kẹo được đánh số hiệu từ 1 đến N . Gói kẹo thứ i ( i = 1,2,3,...,N) có Achiếc kẹo . Cần phân chia N gói kẹo thành 3 phần :

  • Phần 1 gồm các gói kẹo 1,2,...,i . Tổng số chiếc kẹo của phần 1 là x = A1 + A+ ... + Ai;
  • Phần 2 gồm các gói kẹo i + 1 , i + 2 , ... , j . Tổng số chiếc kẹo của phần 2 là y = Ai+1 + Ai+2 + ... + Aj ;
  • Phần 3 gồm các gói kẹo j + 1 ,  j + 2 , ... , N . Tổng số chiếc kẹo của phần 3 là z = Aj+1 + Aj+2 + ... + An ;

Với 1 < i < j < N .

Yêu cầu : Tìm cách phân chiaN gói kẹo sao cho chênh lệch giữa phần có tổng số kẹo nhiều nhất và phần có tổng số kẹo ít nhất là nhỏ nhất , tức là  max ( x , y , z ) - min ( x , y , z ) đạt giá trị nhỏ nhất . Ta đặt giá trị T = max ( x , y , z ) - min ( x ,  y , z ).

Dữ liệu cho trong tệp văn bản ChiaKeo.Inp gồm :

  • Dòng thứ nhất ghi số nguyên dương N là số gói kẹo .

Dòng thứ hai ghi N số nguyên dương A1 , A2 , ... , An ( 1 < Ai < 103 ) là số chiếc kẹo của N gói kẹo . Các số ghi trên một dòng cách nhau bởi dấu cách .

Kết quả ghi ra tệp văn bản ChiaKeo.Out là giá trị nhỏ nhất của T . 

Ví dụ

  • input
    9
    1 1 3 2 1 3 2 1 1
    output
    2

Giới hạn : 

  • Có 50% số test ứng với 50% số điểm thỏa mãn 3 < N < 200 ;
  • Có 25% số test ứng với 25% số điểm thỏa mãn 200 < N < 2000 
  • Có 25% số test ứng với 25% số điểm thỏa mãn 2000 < N < 2 x 105 .
Back to Top