Rút gọn đoạn

Xem dạng PDF

Gửi bài giải


Điểm: 0,62 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Một bài của đội tuyển Ðà Nẵng
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một dãy gồm ~N~ chữ số thuộc đoạn ~0~ ...~9~ ~(N \le 200)~. Ở mỗi bước, ta có thể lấy ra từ dãy này một đoạn liên tiếp các chữ số giống nhau và nhận được một số tiền bằng bình phương độ dài của đoạn được lấy ra. Nếu sau khi lấy, dãy đã cho bị tách làm ~2~ dãy con, ~2~ dãy con này lập tức được sát nhập lại thành ~1~ (giữ nguyên thứ tự).

Hãy tính số lượng tiền lớn nhất có thể thu được.

Input

Dòng đầu ghi số ~N~. Dòng thứ hai ghi ~N~ chữ số thể hiện dãy.

Output

Ghi ra số lượng tiền lớn nhất có thể thu được.

Sample Input

6
100011

Sample Output

18

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.