TopcoderArchiveVisit Topcoder
SRM25 Nov 2008
SRM 427

PSequence

Problem statement, definition, constraints, and public examples.

Problem Statement

You are given a int[] S containing a set of distinct integers. A sequence is called a p-sequence of S if it satisfies both of the following conditions:

1. It contains each element of S exactly once.
2. For each pair of consecutive sequence elements s1 and s2, (s1 - s2) is not divisible by p.

Return the number of p-sequences of S, modulo 1234567891.

Definition

Class:
PSequence
Method:
count
Parameters:
int[], int
Returns:
int
Method signature:
int count(int[] S, int p)
(be sure your method is public)

Constraints

  • S will contain between 1 and 30 elements, inclusive.
  • All elements of S will be distinct.
  • Each element of S will be between -1,000,000 and 1,000,000, inclusive.
  • p will be between 1 and 1,000, inclusive.

Examples

  1. {-1,0,1,2,3}
    10
    Returns: 120
    All permutations of numbers are valid, so we have 5! = 120 sequences.
  2. {6,2}
    4
    Returns: 0
    Both numbers have the same remainder modulo 4 and so we cannot create a valid 4-sequence from them.
  3. {1,2,3,4}
    3
    Returns: 12
  4. {4,6,8,-3,7}
    2
    Returns: 12
Back to all problems