#713. Phản xứng (ANT)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Đối với một chuỗi nhị phân 0/1 , nếu ta đảo ngược các giá trị 0 1 của chuỗi (0 thành 1, 1 thành 0), sau đó đảo ngược thứ tự cả chuỗi mà kết quả thu được giống hệt chuỗi ban đầu, thì chuỗi đó được gọi là chuỗi "phản xứng" (Antisymmetry).

Ví dụ: 00001111 010101 là phản xứng, còn 1001 thì không.

Bây giờ cho một chuỗi 0/1 có độ dài n , hãy tìm xem nó có bao nhiêu chuỗi con là chuỗi phản xứng. Lưu ý rằng các chuỗi con giống nhau nhưng xuất hiện ở các vị trí khác nhau sẽ được tính lặp lại.

Dữ liệu:

  • Dòng đầu tiên chứa một số nguyên dương n .
  • Dòng thứ hai chứa một chuỗi 0/1 có độ dài n .

Kết quả:

  • Một dòng chứa một số nguyên, biểu thị số lượng chuỗi con phản xứng của chuỗi ban đầu.

Ví dụ:

Dữ liệu:

8
11001011

Kết quả:

7

Giới hạn: 1 \le n \le 500\ 000 .