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