AstronomicalRecords
SRM 594 · 2013-06-25 · by cgy4ever
Problem Statement
The first record is a
The second record is a
Note that the planets considered by a record do not have to be consecutive. For example, if a solar system contains the planets P, Q, R, S, T, and U, it is possible that the first record compares P, R, and S, and the second record compares Q, R, T, and U.
We assume that both records are correct. Return the smallest possible total number of planets in the solar system.
Constraints
- A will contain between 2 and 50 elements, inclusive.
- B will contain between 2 and 50 elements, inclusive.
- Each element in A will be between 1 and 1,000,000,000, inclusive.
- Each element in B will be between 1 and 1,000,000,000, inclusive.
Statement by TopCoder, Inc. — view the original on the archive.
{1,2,1,2,1}
{2,1,2,1,2}
Returns: 6
There have to be at least 5 planets, because each record compares 5 of them. There cannot be exactly 5 planets, because the first one would have to be both smaller than and larger than the second one. (Their ratio would have to be both 1:2 and 2:1, which is impossible.) There can be exactly 6 planets with relative sizes 1,2,1,2,1,2.
{1,2,3,4}
{2,4,6,8}
Returns: 4
There can be only 4 planets because 1:2:3:4 = 2:4:6:8.
{2,3,2,3,2,3,2}
{600,700,600,700,600,700,600}
Returns: 10
{1,2,3,4,5,6,7,8,9}
{6,7,8,9,10,11,12}
Returns: 12
{100000000,200000000}
{200000000,100000000}
Returns: 3
Submissions are judged against all 205 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Language: C++17 · define a public class AstronomicalRecords with a public method int minimalPlanets(vector<int> A, vector<int> B) · 205 test cases · 2 s / 256 MB per case