fork download
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.Map;
  4. import java.util.HashMap;
  5. import java.lang.Math;
  6.  
  7. class Main
  8. {
  9.  
  10. private static long mod = 1L << 32;
  11. public static Map<Long, Long> mp = new HashMap<Long, Long>();
  12.  
  13. public static long f(long n) {
  14. if (n <= 2) {
  15. return 1;
  16. }
  17. if (mp.containsKey(n)) {
  18. return mp.get(n);
  19. }
  20. if (n % 2 == 1) {
  21. long d = (f(6 * n / 7) % mod + f(2 * n / 3) % mod) % mod;
  22. mp.put(n, d);
  23. return mp.get(n);
  24. }
  25. long o = (f(n - 1) % mod + f(n - 3) % mod) % mod;
  26. mp.put(n, o);
  27. return mp.get(n);
  28. }
  29.  
  30.  
  31. public static void main (String[] args) throws java.lang.Exception
  32. {
  33. BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  34. String[] params1 = bufferedReader.readLine().split(" ");
  35. long n;
  36. n = Long.parseLong(params1[0]);
  37. System.out.print(f(n));
  38. }
  39. }
Success #stdin #stdout 0.04s 2184192KB
stdin
10
stdout
27