Canadian Computing Competition: 2014 Stage 1, Senior #3
In order to ensure peace and prosperity for future generations, the United Nations is creating the world's largest candy. The ingredients must be taken in railway cars from the top of a mountain and poured into Lake Geneva. The railway system goes steeply from the mountaintop down to the lake, with a T-shaped branch in the middle as shown below.
Right now, each of the ingredients is in its own railway car. Each railway car is assigned a positive integer from
to
. The ingredients must be poured into the lake in the order
but the railway cars are lined up in some random order. The difficulty is that, because of the especially heavy gravity today, you can only move cars downhill to the lake, or sideways on the branch line. Is it still possible to pour the ingredients into the lake in the order
?
For example, if the cars were in the order , we can slide these into the lake in order as described below:
- Slide car 4 out to the branch
- Slide car 1 into the lake
- Slide car 3 out to the branch
- Slide car 2 into the lake
- Slide car 3 from the branch into the lake
- Slide car 4 from the branch into the lake
Input Specification
The first line will contain the number
which is the number of different tests that will be run. Each test has the form of an integer
on the first line of the test, followed by a list of the
cars listed from top to bottom. The cars will always use the numbers from
to
in some order.
Output Specification
For each test, output one line which will contain either Y
(for "yum") if the recipe can be completed, and N
otherwise.
Sample Input
2
4
2
3
1
4
4
4
1
3
2
Output for Sample Input
Y
N
Comments
Very fun question but isn't it a bit easy for an S3?
Can someone take a look at why my code doesn't work? I get the first test case correct but not the other ones. Thank you.
Hi, can someone give me some suggestions to avoid TLE in python?
This comment is hidden due to too much negative feedback. Show it anyway.
Not helpful...
why is my code not working? Could anyone check? Im getting the 1st question right and got a couple of my own test cases correct but it's failing for 2, 3, 4, and a TLE for 5. Thanks
You need to look at how you are changing starting_number. The below should return Y. (one test, four numbers) 1 4 4 3 1 2
I’m getting WAs for the last four test cases. Can someone look at my code please?
Can someone please tell me why my code segmentation faults?
Your submission - https://dmoj.ca/src/3852849
Line 27 - you are calling
top()
on an empty stack. Make sure to first check if the stack is empty.Thanks, I didn’t realise.
Can someone please check what is wrong my code and how can I fix it?
You should re-initialize your stack for each test-case, your code right now carries over the stack used for the previous test-case, which misses up your calculations.
Can someone look over my code? I'm getting WA for all test cases except for the first one :/
I see your code, and find some mistakes. In fact, you cannot assume that the number which be put to the branch is the largest of the remaining numbers. You can try this data as an instance: 4 2 3 1 (one test case with four numbers from top to bottom). And you'll see that the number '4' will not be put to the branch, but put in the river immediately when it comes.
Kind of confused on what's wrong with my code... :(
Your code looks like it would run just fine, except you need to make a slight change to line 10 (if you have changed your code around, it is the one where you loop "repeater" times)
Good luck!
This problem is exactly like this.