IncrementingSequence
SRM 625 · 2013-12-22 · by vexorian
Problem Statement
Your goal is to change it into a
You are given the
Notes
- Return value is case-sensitive. For example, you can't return "Possible" or "possible" instead of "POSSIBLE".
Constraints
- k will be between 1 and 10, inclusive.
- A will contain between 1 and 50 elements, inclusive.
- Each element of A will be between 1 and 50, inclusive.
3
{1,2,4,3}
Returns: "POSSIBLE"
This sequence of length 4 already contains all numbers from 1 to 4 exactly once. Note that their order does not matter.
5
{2,2}
Returns: "IMPOSSIBLE"
1
{1,1,1,1,1,1,1,1}
Returns: "POSSIBLE"
There are many ways to achieve the goal. For example, it is possible to obtain the sequence {1,2,3,4,5,6,7,8}. To do this, just increment the element at each position one by one until it reaches the required value.
2
{5,3,3,2,1}
Returns: "IMPOSSIBLE"
We want to have the values {1,2,3,4,5}, in any order. Currently, we are missing the 4. As k=2, the only way to produce a 4 is by incrementing a 2. But if we increment our only 2, we will have no way of producing another 2.
9
{1,2,3,1,4,5,6,7,9,8}
Returns: "POSSIBLE"
Submissions are judged against all 255 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Language: C++17 · define a public class IncrementingSequence with a public method string canItBeDone(int k, vector<int> A) · 255 test cases · 2 s / 256 MB per case