import java.util.*;
import java.util.stream.Stream;
import java.io.*;
public class Main {
static int P;
static int Q;
static long X;
static long Y;
static HashMap<Long, Long> map = new HashMap<Long, Long>();
public static long Solve(long i) {
if (i <= 0) {
return 1;
} else {
if (map.get(i) == null) {
long p=(long) i/P-X;
long q=(long) i/Q-Y;
long number = Solve(p) + Solve(q);
map.put(i, number);
return number;
} else {
return map.get(i);
}
}
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
long[] input = Stream.of(br.readLine().split(" ")).mapToLong(Long::parseLong).toArray();
long N = input[0];
P = (int) input[1];
Q = (int) input[2];
X = (int) input[3];
Y = (int) input[4];
map.put((long) 0, (long) 1);
bw.write(String.valueOf(Solve(N)));
bw.flush();
bw.close();
}
}
반응형
'Algorithm > Baekjoon For.Java' 카테고리의 다른 글
1676 : 팩토리얼 0의 갯수 (0) | 2023.03.22 |
---|---|
2292 : 벌집 (0) | 2023.03.20 |
10816 : 숫자 카드 2 (0) | 2023.03.17 |
1351 : 무한 수열 (0) | 2023.03.16 |
5397 : 키로거 (0) | 2023.03.13 |