TopcoderArchiveVisit Topcoder
SRM5 Aug 2008
SRM 413

InfiniteSequence

Problem statement, definition, constraints, and public examples.

Problem Statement

NOTE: This problem statement contains subscripts that may not display properly if viewed outside of the applet.


Let's consider an infinite sequence A defined as follows:

  • A0 = 1;
  • Ai = A[i/p] + A[i/q] for all i >= 1, where [x] denotes the floor function of x. (see Notes)
You will be given n, p and q. Return the n-th element of A (index is 0-based).

Definition

Class:
InfiniteSequence
Method:
calc
Parameters:
long, int, int
Returns:
long
Method signature:
long calc(long n, int p, int q)
(be sure your method is public)

Notes

  • [x] denotes the floor function of x which returns the highest integer less than or equal to x. For example, [3.4] = 3, [0.6] = 0.

Constraints

  • n will be between 0 and 10^12, inclusive.
  • p and q will both be between 2 and 10^9, inclusive.

Examples

  1. 0
    2
    3
    Returns: 1
    A[0] = 1.
  2. 7
    2
    3
    Returns: 7
    A[0] = 1; A[1] = A[0] + A[0] = 2; A[2] = A[1] + A[0] = 2 + 1 = 3; A[3] = A[2] + A[1] = 3 + 2 = 5; A[7] = A[3] + A[2] = 5 + 3 = 8.
  3. 10000000
    3
    3
    Returns: 32768
  4. 256
    2
    4
    Returns: 89
  5. 1
    1000000
    1000000
    Returns: 2
Back to all problems