아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

암호 찾기

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

요약
길이가 N인 두 숫자 문자열 A와 B, 그리고 정수 K가 주어질 때, A와 B 모두의 부분 문자열이면서 길이가 K인 서로 다른 문자열의 개수를 구한다.
난이도

보통10점 중 7점

유형
문자열, 문자열 매칭, 해시맵, 이분 탐색
정답자
아직 제출이 없습니다

문제

오랫동안 세계 4대 문명이 최초의 문명으로 알려져 있었지만, 최근 이를 뒤집는 고고학적 연구 결과가 발표되었습니다. 새로 발견된 ‘폴리매스 문명’은 기원전 9000년경부터 존재했음이 확인되었습니다.

당신은 고고학자로서 폴리매스 문명을 연구하는 임무를 맡고 있습니다. 폴리매스 문명은 보안을 위해 특이한 형식의 비밀번호를 사용했는데, 그 규칙은 다음과 같습니다.

사람들은 비밀번호 규칙과 관련된 숫자 두 개로 이루어진 문자열을 만들었습니다. 두 문자열 AA와 BB의 길이는 각각 NN으로 같습니다. AA와 BB 모두의 부분 문자열이면서 길이가 정확히 KK인 문자열이 비밀번호가 됩니다.

비밀번호가 여러 개이거나 하나도 없을 수도 있는데, 이런 경우에는 AA와 BB의 기록이 잘못된 것입니다. 기록이 올바른지 판정하기 위해, 가능한 서로 다른 비밀번호의 수를 구하는 프로그램을 작성하세요.

입력

첫 줄에는 각 문자열의 길이 NN과 뽑아낼 수의 자릿수 KK가 주어집니다. 둘째 줄에는 문자열 AA가 주어집니다. 셋째 줄에는 문자열 BB가 주어집니다.

출력

AA와 BB 모두의 부분 문자열이고 길이가 KK인 서로 다른 문자열의 수를 출력합니다.

제한

  • 1≤N≤1051 \le N \le 10^5
  • 1≤K≤N1 \le K \le N
  • ∣A∣=∣B∣=N|A| = |B| = N
  • AA, BB의 모든 문자는 1 이상 9 이하의 숫자입니다.

예제3

  1. 예제 1

    입력
    4 2
    1122
    6677
    
    예상 출력
    0
    
  2. 예제 2

    입력
    3 1
    122
    221
    
    예상 출력
    2
    
  3. 예제 3

    입력
    3 2
    124
    248
    
    예상 출력
    1