Logo
(追記) (追記ここまで)

32687번 - 반복수

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB3421118840.553%

문제

하나의 $K$자리 수를 원하는 만큼 연속해서 이어 붙인 뒤, 뒤에서부터 0ドル$개 이상의 연속된 숫자를 제거하여 만들어낸 $K$자리 이상의 수를 $K$-반복수라 한다. 가령, 2ドル,462円,462円$는 3ドル$자리 수 246ドル$을 세 번 이어 붙인 뒤, 마지막 두 자리 숫자를 제거하여 만들어낸 3ドル$-반복수이며, 24ドル$는 3ドル$자리수 미만의 수이므로 3ドル$-반복수가 아니다.

$A$ 이상 $B$ 이하의 $K$-반복수 중, $M$으로 나누어 떨어지는 수의 개수를 구해보자.

입력

첫째 줄에 정수 $A,B,K,M$이 공백으로 구분되어 주어진다. $(1\le A\le B\le 10^{12};$ 1ドル\le K\le 6;$ 1ドル\le M\le 10^{12})$

출력

$A$ 이상 $B$ 이하의 $K$-반복수 중, $M$으로 나누어 떨어지는 수의 개수를 출력한다.

제한

예제 입력 1

100 120 2 1

예제 출력 1

2

예제 입력 2

200 300 2 3

예제 출력 2

3

예제 입력 3

100 10000 3 3

예제 출력 3

600

노트

10ドル^{12}$는 32ドル$bit 정수형 타입 변수 범위를 초과할 수 있으므로, C/C++의 long long, Java의 Long 등 64ドル$비트 정수형 타입을 사용해야 한다.

출처

University > DGIST > 2024 DGIST 알고리즘 경진대회 C번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /