[TikTok] AMS Intern Assessment 2025 Start
Anonymous User
47

Question:

You are given an array entertainment of size n, where each element represents the entertainment score of a video. You are also given an integer r which is the multiplier applied to the enjoyment score based on the order in which the videos are selected. A user will choose three videos in sequence (indices i, j, k) such that:

  • 0 ≤ i ≤ j ≤ k < n
  • The first video is at index i, the second is at index j, and the third is at index k.

The total enjoyment score is calculated as:

  • entertainment[i] + r * entertainment[j] + r² * entertainment[k].

The user can choose videos in the following ways:

  1. Watch the same video three times (i = j = k).
  2. Watch one video twice and another video once (i = j < k or i < j = k).
  3. Watch three different videos (i < j < k).

Your task is to write a function maximumEntertainment(entertainment, r) to compute the maximum possible entertainment score achievable by selecting three videos optimally.


Constraints:

  • 1 ≤ n ≤ 10⁵
  • -10⁵ ≤ entertainment[i] ≤ 10⁵
  • -100 ≤ r ≤ 100

Example Input 1:

n = 5  
entertainment = [1, 2, 3, 4, 5]  
r = 2  

Example Output 1:

35  

Explanation:
The optimal indices are (i, j, k) = (4, 4, 4), giving the score:
5 + 2 * 5 + 2² * 5 = 35.


Example Input 2:

n = 5  
entertainment = [-1, 2, -3, -4, 5]  
r = -2  

Example Output 2:

30  

Explanation:
The optimal indices are (i, j, k) = (1, 3, 4), giving the score:
2 + (-2) * (-4) + (-2)² * 5 = 30.


Write an efficient solution to maximize the score.

Here is the question corresponding to the problem statement you provided:


Question:

TikTok is enhancing its Creator Collaboration platform to recommend collaboration between content creators. The network consists of collab_nodes creators, numbered from 1 to collab_nodes, connected by collab_edges potential collaboration links.

Each link between creator collab_from[i] and creator collab_to[i] has an associated effort level given by collab_weight[i], which indicates the difficulty of establishing that collaboration.

To facilitate these collaborations, TikTok must invest resources. If TikTok invests X amount of resources, it will unlock all links where the collab_weight ≤ X, making them available for collaboration.

The goal is to determine the minimum amount of resources TikTok needs to allocate so that creator 1 can successfully collaborate with creator collab_nodes by traversing no more than k collaboration links. If it is impossible to achieve this within the given constraints, return -1.


Function Signature:

def findMinCollabResources(collab_nodes: int, collab_from: List[int], collab_to: List[int], collab_weight: List[int], k: int) -> int:

Input:

  1. int collab_nodes: The number of creators.
  2. int collab_from[collab_edges]: The starting creator of each collaboration link.
  3. int collab_to[collab_edges]: The ending creator of each collaboration link.
  4. int collab_weight[collab_edges]: The difficulty of each collaboration link.
  5. int k: Maximum number of collaboration links allowed.

Output:

  • int: The minimum resources required to enable collaboration between creator 1 and creator collab_nodes by traversing no more than k collaboration links. Return -1 if it is not possible.

Constraints:

  • ( 2 \leq \text{collab_nodes} \leq 10^5 )
  • ( 1 \leq \text{collab_edges} \leq 2 \times 10^5 )
  • ( 1 \leq \text{collab_from[i]}, \text{collab_to[i]}, k \leq n )
  • ( 1 \leq \text{collab_weight[i]} \leq 10^9 )
  • The graph does not contain multiple edges or self-loops.

Examples:

Example 1:

Input:

collab_nodes = 5  
collab_edges = 6  
collab_from = [1, 3, 4, 3, 1, 2]  
collab_to = [3, 4, 5, 5, 2, 5]  
collab_weight = [2, 4, 6, 9, 7, 8]  
k = 2

Output:

8

Explanation:

  • TikTok can invest 8 units of resources to unlock links with collab_weight ≤ 8.
  • The path 1 -> 2 -> 5 uses 2 collaboration links and satisfies the constraints.
  • It is not possible to enable collaboration between 1 and 5 using fewer resources.

Example 2:

Input:

collab_nodes = 4  
collab_edges = 4  
collab_from = [2, 3, 2, 1]  
collab_to = [3, 1, 4, 2]  
collab_weight = [6, 4, 5, 2]  
k = 3

Output:

5

Explanation:

  • TikTok can invest 5 units of resources to unlock links with collab_weight ≤ 5.
  • The path 1 -> 2 -> 4 uses 2 collaboration links and satisfies the constraints.
  • It is not possible to enable collaboration between 1 and 4 with fewer resources.

Example 3:

Input:

collab_nodes = 5  
collab_edges = 3  
collab_from = [1, 2, 4]  
collab_to = [4, 5, 3]  
collab_weight = [10, 25, 15]  
k = 5

Output:

-1

Explanation:

  • Creator 1 and creator 5 are in different disconnected components.
  • Thus, collaboration is impossible.

Write an efficient solution to minimize the resources required.

Comments (0)