Thứ Ba, 3 tháng 11, 2015

GIẤY CHỨNG CHỈ

Steve tham gia rất nhiều kỳ thi, lớp ngoại khóa khác nhau và có đủ các loại chứng chỉ. Các chứng chỉ này được kẹp lưu trữ ở các tập khác nhau không theo một quy tắc nào cả. Cũng may là bên ngoài tập còn ghi số lượng chứng chỉ kẹp trong đó.
Hôm nay Steve cần đi ra văn phòng công chứng sao lại chứng chỉ kết quả thi Tin học Quốc gia để làm hồ sơ xin được tuyển thẳng vào khoa Công nghệ thông tin. Steve chỉ có một chứng chỉ này. Bạn ấy muốn tìm tập chứa chứa chứng chỉ đang cần, mang ra nơi công chứng và trong thời gian xếp hàng chờ đợi sẽ tìm và lấy nó ra để sao. Việc mở một tập kẹp chứng chỉ mất 1 giây, xem xét một chứng chỉ có phải là cái mình đang tìm hay không cũng mất 1 giây. Dĩ nhiên Steve không tìm ở các tập có ghi số lượng là 0. Việc chuyển từ tập này sang tập khác là không đáng kể.
Yêu cầu: Cho n – số tập lưu chứng chỉ và các số ai – số chứng chỉ lưu trong tập i ( 0 ≤ ai ≤ 106, 1 ≤ n ≤ 106, i = 1 ÷ n). Hãy xác định, trong trường hợp xấu nhất, Steve cần ít nhất  bao nhiêu thời gian để tìm ra tập cần thiết.
Dữ liệu: Vào từ file văn bản CERTIF.INP:
+ Dòng đầu tiên chứa số nguyên n,
+ Dòng thứ 2 chứa n số nguyên a1, a2, . . ., an.
Kết quả: Đưa ra file văn bản CERTIF.OUT một số nguyên – thời gian cần để tìm.
Ví dụ:

CERTIF.INP
CERTIF.OUT
4
1 0 2 1
4
3
1 2 3
5