Cody

Problem 45498. Trace the path of a harmful chemical in an ecological network

An ecological network consists of the cycles of nature, such as the water cycle, the carbon cycle, the oxygen cycle, etc. Due to human activities, harmful chemicals (or persistent pollutants) are now entering these cycles and may stay there forever. Your job is to track a specific unknown chemical inside an ecological network.

For this problem, a network involves N sites in nature, labelled as Site 1, Site 2, ..., Site N. Researchers have identified an ecological network for you, which is given as a [1 x N] row vector called P. The network is read as follows: "A chemical that enters Site i always end up at Site P(i)". Consider the following example:

If a chemical enters Site:      1 2 3 4 5
   it will end up at Site: P = [3 1 5 2 4]

If a harmful chemical enters the ecological network from Site 2, it will be traced to Site 1 (which is P(2)), then eventually at Site 3, then at Site 5, then at Site 4, then back to Site 2. Hence, the path of this chemical is [2 1 3 5 4].

Write a function that takes a vector P and a starting site S. Output the path of the chemical after it enters Site S in the given ecological network. You are ensured that:

  • P is always a permutation of integers 1 to N.
  • 2 <= N <= 100
  • 1 <= S <= N

See sample test cases:

>> trace_chemical([3 1 5 2 4],2)
   ans = 
       2 1 3 5 4
>> trace_chemical([3 1 5 2 4],1)
   ans =
       1 3 5 4 2
>> trace_chemical([4 1 6 5 2 3],1)
   ans =
       1 4 5 2

Solution Stats

55.56% Correct | 44.44% Incorrect
Last Solution submitted on Jun 26, 2020

Problem Comments