HKOI 2014 Senior
Pharmaceutical CompanyProblem Prepared by : Gary Wong
Problem
• Find the maximum number of capsules they can produce
• Find the earliest possible time for the workers to finish the synthesis process in such case
Solution 1
• Write a function to achieve this– given the time the workers finished the synthesis
work, find the number of capsules they can produce
• Exhaust the finishing time for X workers, from 1 to T
• Complexity = O( T * ( X + Y ) )• Score = 50
Observation 1
• If the synthesis process is too long, the Y workers cannot finish the capsuling process
• If the synthesis process is too short, the number of capsules will not be maximized
• There must be a critical time slot (s – t), such that– More than t units of time, the capsuling process cannot
be finished– Less than s units of time, the number of capsules will
not be optimal
Possible Idea 1
• One might use binary search to locate one terminal of that time slot t
• Is t units of time the answer?
Tricky Part
• In that time slot, the number of capsules can be produce might be identical
• Recalled from the problem statement– “If there are multiple solutions that can maximize
the number of capsules, output the earliest time for the shift”
• Obviously finding t is not good enough• What should we do to find s?
Possible Idea 2
• After the binary search, we’ve already known the optimal number of pills we can make
• Studying the property of s– Using less than s units of time, the number of pills
apparently is not maximum– Using time from s to t, the number of pills is
identical• In other words, s is another critical point
Solution 2
• Write a function to achieve this– given the time the workers finished the synthesis
work, find the number of capsules they can produce
• Use binary search to locate t from 1 to T• Use binary search to locate s from 1 to t• Complexity = O((X + Y) ln T)• Score = 100
Observation 2
• Using two binary search is not convenient enough
• For example,– X = 1, he need 3 units of time to produce a pill– Giving him 3, 4, 5 units of time, the number of pill
he could produce is same• Once we locate the time of t• Find x = min(t mod Ta[i])• The optimal time is actually t - x
Solution 3
• Write a function to achieve this– given the time the workers finished the synthesis
work, find the number of capsules they can produce• Use binary search to locate t from 1 to T• Find the minimum modulus• Output t – x and the pills can be made• Complexity = O((X + Y) * ln T)• Score = 100%
Tricky Case
• If the time is only enough to produce 0 pill, what should we output?– (0, 0)?
• No!• As the boss is very mean, X workers need to
prepare and clean up before Y workers arrive
• END
Top Related