Hello,
I am trying to solve https://cses.fi/problemset/task/1163, but got some problem to understand it. It states that "There is a street of length x whose positions are numbered 0,1,…,n. " That should be "0, 1,..., x", not n, isn't it?
Then the example:
Input:
8 3
3 6 2
Output:
5 3 3
I think output should be 5, 3, 2, not 5, 3, 3. Since obviously the longest segment without a traffic light is 2, not 3.
0 1 2 3 4 5 6 7 8
x x x
Can somebody explain? A lot of people solved that problem, I think I am missing something. Thanks.
Found it by myself ;)
Two things one must notice:
There is an "implicit" traffic light after position 0. The length of the segment is calculated as without left bound, but including right bound.
So, the traffic lights are placed kind of "right of the positions". After adding the three lights, it looks like
The longest segment is the one "4,5,6", of length 3.
spookywooky Can You Explain it in simple words.I am also stuck at this problem but not able to get it.Problem Statement is not clear.
Thanks in Advance!
PS-Why this post is getting downvoted?I have done nothing wrong.If asking a doubt is an offense to community then why a discuss section was made on Codeforces.This discuss section is made for discussing doubts and problems.
Which part is unclear? The statement or the solution?
I am not getting the statement! i think the output should be 5 3 2 and not 5 3 3
The traffic lights are placed between the numbered segments of the street, after the given number.
In the testcase above there are 3 lights, at positions between 2 and 3, between 3 and 4, and between 6 and 7.
So the longest segment without a traffic light is {4,5,6} of size 3.
After adding 6 wouldn't be answer 4 Because we have 3 segments which do not contain traffic lights :
and size is 4. I am sorry if its a dumb question but i can request if you can clarify this! spookywooky ?
Nah, the numbers are not the spaces between the segments, the numbers are the segments.
There is a segment 1, a segemnt 2 etc... We place the lights between the segments.
You mean to say
and so on... spookywooky?
light only belongs to the left segment
light on 1 means 1-1 and 2-n
You are right, the task statement had a typo. This has now been fixed, thanks!
Fixed? Nothing has been changed. Can you recheck?
Can you please give me a hint on how to solve this problem? I am stuck in it.
Hint: Think about the number of segments that could be affected after adding a new traffic light.
Thanks for the hint man
Hey, I am still not able to figure it out, can you share your approach?
Thank you :) Hey, If you know how to approach "Throwing dice"? https://cses.fi/problemset/task/1096
it is an easy linear reccurence:
$$$f(x) = \sum_{i=1}^{6} f(x-i)$$$ which can be solved by the matrix multiplication
you can solve it using dynamic programming
$$$f(i) = \sum_{k = 1} ^ {6} f(i - k)$$$
$$$-> \ O(n)$$$
$$$after \ that \ you \ can \ use$$$ matrix exponentiation
$$$-> \ O(log(n))$$$
then the answer after is at row 1 column 6
Good luck!
Thank you very much! I did not know about the matrix multiplication part, it look's really cool.
it is written in his book, page 221
Hey, your solution is giving TLE for some Cases.
O(N) will give TLE, he was explaining the basic idea, check the comment below it.