TopcoderArchiveVisit Topcoder
SRM25 Aug 2014
SRM 640

TwoNumberGroups

Problem statement, definition, constraints, and public examples.

Problem Statement

A multiset is the same thing as a set, with the difference that a multiset can contain multiple copies of the same element. For example, {1,1,1,2,3} is a multiset that contains three 1s, one 2, and one 3.

You have two multisets called A and B. The first multiset is described by the int[]s A and numA. For each valid i, the multiset contains numA[i] copies of the value A[i]. The second multiset is described by the int[]s B and numB in the same way.

For a positive integer n, let f(n) be the sum of distinct prime factors of n. For example, f(12)=5 because the only primes that divide 12 are 2 and 3, and 2+3 = 5. Note that f(1)=0. Additionally, we define that f(0)=0 and that for any negative integer n we have f(n)=f(-n). For example, f(-1)=0 and f(-12)=5.

For each x in A and for each y in B we computed the value f(x-y). Return the sum of all those values, modulo 1,000,000,007.

Definition

Class:
TwoNumberGroups
Method:
solve
Parameters:
int[], int[], int[], int[]
Returns:
int
Method signature:
int solve(int[] A, int[] numA, int[] B, int[] numB)
(be sure your method is public)

Constraints

  • A and B will each contain between 1 and 1,000 elements, inclusive.
  • All elements of A will be distinct.
  • All elements of B will be distinct
  • The number of elements in numA will be the same as the number of elements in A.
  • The number of elements in numB will be the same as the number of elements in B.
  • All elements of A and B will be between 1 and 1,000,000,000, inclusive.
  • All elements of numA and numB will be between 1 and 100,000, inclusive.

Examples

  1. {1}
    {2}
    {3,7}
    {1,1}
    Returns: 14
    This input describes the multisets A = {1,1} and B = {3,7}. For these two multisets we computed the following four values: f(1-3), f(1-3), f(1-7), and f(1-7). Their sum is f(2)+f(2)+f(6)+f(6) = 2+2+5+5 = 14.
  2. {100}
    {2}
    {1}
    {1}
    Returns: 28
  3. {5,1}
    {1,1}
    {12,999999894}
    {1,1}
    Returns: 202073
  4. {1}
    {1}
    {1}
    {100000}
    Returns: 0
  5. {11795180,41472124,44285836,84280940,117000811,150317409,154188370,167804776,225797581,
     240995620,301931440,306528163,327332717,333523124,341325123,350292524,400857064,401290197,
     426573408,427972026,448467719,563926065,574489831,579516358,609409829,659343788,678481187,
     775710113,806992032,831437250,839580344,842388073,869876247,899553191,902366903,975081878}
    {1188,1769,1782,1757,1527,4958,3083,4439,3621,3958,2655,2250,2079,3885,3598,
     3236,3035,2286,7340,4127,3126,2904,2592,3082,3789,2776,3907,2368,4005,4863,
     4482,3307,2459,1436,1656,2007}
    {11795180,41472124,44285836,84280940,117000811,150317409,154188370,167804776,225797581,240995620,
     301931440,306528163,327332717,333523124,341325123,350292524,400857064,401290197,426573408,
     427972026,448467719,563926065,574489831,579516358,609409829,659343788,678481187,775710113,
     806992032,831437250,839580344,842388073,869876247,899553191,902366903,942362007,975081878}
    {3024,902,798,2,1426,4959,3082,4439,3622,3958,2653,2249,2081,3884,3599,
     3237,3033,2285,7340,4125,3127,2904,2592,3082,3789,2775,3907,2369,4006,
     4863,4483,3307,623,2303,2642,1757,2107}
    Returns: 601548244
Back to all problems