TopcoderArchiveVisit Topcoder
TCO26 Mar 2014
TCO 2014 Wildcard

CountTables

Problem statement, definition, constraints, and public examples.

Problem Statement

Little Petya likes rectangular tables filled with integers a lot. He is especially fond of special tables. He calls table special if and only if the following conditions are satisfied:

  • The table has exactly N rows and M columns.
  • Each cell of the table contains an integer between 1 and C, inclusive.
  • For any pair of row indices r1 and r2 (r1 != r2) there exist a column index c such that the numbers at cells (r1, c) and (r2, c) are different.
  • For any pair of column indices c1 and c2 (c1 != c2) there exist a row index r such that the numbers at cells (r, c1) and (r, c2) are different.

You are given the ints N, M, and C. Count all special tables and return their count modulo 1,000,000,007.

Definition

Class:
CountTables
Method:
howMany
Parameters:
int, int, int
Returns:
int
Method signature:
int howMany(int N, int M, int C)
(be sure your method is public)

Constraints

  • N, M and C will be between 1 and 4000, inclusive.

Examples

  1. 2
    2
    2
    Returns: 10
    These are the 10 special tables in this case: 11 11 12 21 12 21 11 11 22 22 21 12 21 12 22 22 12 21 21 12
  2. 1
    1
    4000
    Returns: 4000
  3. 2
    3
    5
    Returns: 13740
  4. 4000
    1
    4000
    Returns: 593395757
  5. 5
    5
    1
    Returns: 0
  6. 4000
    4000
    4000
    Returns: 237003303
Back to all problems