타카하시의 카드 게임

시간 제한1초메모리 제한512 MB

요약
카드를 2장 이상 골라 상자에 넣었을 때, 어떤 순서로 뽑아도 팰린드롬이 만들어지지 않도록 하는 선택의 가짓수를 센다.
난이도

어려움10점 중 8점

유형
문자열, 조합론, 수학, 구현
정답자
아직 제출이 없습니다

문제

11번 카드부터 nn번 카드까지 서로 다른 nn개의 카드가 있습니다. 각각의 카드에는 알파벳 소문자와 대문자 중 하나의 문자가 적혀 있습니다. 가희는 이 중 22개 이상의 카드를 뽑아서 랜덤 상자에 넣었습니다. 타카하시는 다음 행동을 아래 순서대로 수행합니다.

  • 랜덤 상자에서 카드를 11개 이상 뽑습니다. 이 행동을 수행한 후, 랜덤 상자에는 카드가 적어도 하나 이상 남아 있어야 합니다.
  • 뽑은 카드들을 뽑은 순서대로 나열해 문자열을 만듭니다.

만들어진 문자열이 팰린드롬이면 가희가, 그렇지 않으면 타카하시가 승리합니다. 가희가 항상 승리하도록 카드를 뽑아서 랜덤 상자에 넣는 가짓수를 109+710^{9} + 7로 나눈 나머지를 출력해 주세요.

입력

첫 번째 줄에 카드의 수 nn이 주어집니다.

두 번째 줄에 길이 nn의 문자열이 주어집니다. ii번째로 주어지는 문자는 ii번 카드에 적혀 있는 문자를 의미합니다.

출력

문제의 정답을 출력해 주세요.

제한

  • 2≤n≤500,0002 ≤ n ≤ 500\\,000

힌트

팰린드롬이란 앞으로 읽어도, 뒤로 읽어도 같은 문자열을 의미합니다.

예제2

  1. 예제 1

    입력
    6
    aabbaa
    
    예상 출력
    20
    
  2. 예제 2

    입력
    2
    mm
    
    예상 출력
    1