길이 n이고 q개 기호로 이루어진 단어 중 두 초점 단어까지의 해밍 거리 합이 정확히 D인 단어의 수를 구한다.
보통5조합론수학문자열구현아직 제출이 없습니다시간 제한5초메모리 제한512 MB기하학에서 타원은 두 초점 f1, f2와 길이 D로 정의된다. 타원은 d(f1,p)+d(f2,p)=D를 만족하는 모든 점 p의 집합이다.
타원이라고 하면 보통 유클리드 거리를 쓰는 2차원 유클리드 평면 위의 도형을 떠올린다.
이 문제는 다른 종류의 타원을 다룬다. 여기서 쓰는 공간은 서로 다른 기호 q개로 이루어진 알파벳으로 만든 길이 n의 단어 전체가 이루는 공간이고, Fqn으로 적는다. q와 n이 주어지면 Fqn의 점, 즉 단어는 qn개다.
거리는 해밍 거리를 쓴다. 두 단어 x,y∈Fqn 사이의 해밍 거리 dH(x,y)는 같은 자리의 기호가 서로 다른 위치의 개수다. 예를 들어 단어 01201과 21210의 해밍 거리는 3이다. 기호가 다른 위치가 세 곳이기 때문이다. Fqn의 두 단어 사이의 해밍 거리는 항상 0 이상 n 이하의 정수다.
이제 Fqn 안에서 해밍 타원을 dH(f1,p)+dH(f2,p)=D를 만족하는 모든 점 p의 집합으로 정의한다. q와 n, 두 초점 f1과 f2, 거리 D가 주어질 때 이 해밍 타원 위에 놓인 점 p∈Fqn의 개수를 구하라.
첫째 줄에 세 정수 q (2≤q≤10), n (1≤n≤100), D (1≤D≤2n)가 주어진다.
둘째 줄과 셋째 줄에 두 초점 f1과 f2가 순서대로 주어진다. 두 줄은 모두 숫자 {0,1,…,q−1}로 이루어진 길이 n의 문자열이다.
타원 위에 놓인 점의 개수를 정수 하나로 한 줄에 출력한다. 입력은 답이 263보다 작도록 주어진다.