백준 풀이/자바(Java)
백준 1354 자바 - 무한 수열 2
콘스_
2024. 3. 18. 14:06
// 무한 수열 2
package Gold_V_5;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Ex1354 {
static long n;
static int p, q, x, y;
static Map<Long, Long> map = new HashMap<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Long.parseLong(st.nextToken());
p = Integer.parseInt(st.nextToken());
q = Integer.parseInt(st.nextToken());
x = Integer.parseInt(st.nextToken());
y = Integer.parseInt(st.nextToken());
System.out.println(get(n));
}
static long get(long key) {
if (map.get(key) == null) { put(key); }
return map.get(key);
}
static void put(long key) {
if (key <= 0L) {
map.put(key, 1L);
} else {
map.put(key, get(key / p - x) + get(key / q - y));
}
}
}
이전에 풀었던 무한 수열 문제의 코드를 재활용해서 풀었다