ŽIVICA
문제
Array of N integers is given. In one move Mirko can decrease one of its elements by one, and repeat it arbitrarily but no number can be less than 1. He is given T moves and has to use them all. He wants that after he is done maximal absolute difference of any two neighbouring numbers is minimal.
입력
In first line of standard input there are two integers N and T (2 ≤ N ≤ 100 000, 1 ≤ T ≤ 109), array length and number of moves Mirko should make.
In next line there are N natural numbers less than 109.
출력
In first and only line output array after Mirko has done T moves.
힌트
For every test case your solution scores points as follows: Let D be maximal absolute difference of any two neighbouring numbers in your solution and S in official(optimal) solution, then your score for that test case is (10 * (S + 1) / (D+1)).
So for example, if your solution has difference D equal to optimal one, your score is 10 points. If your solution output array which cannot be made in T moves or there was some other error during the program execution your score is 0 on that test case.
In test example, for printed solution { 4 2 3 5 6 } maximal difference of any two neighbouring numbers is 2, so score is 10*(2/3) = 6.66 points, because optimal solution is 1.
예제
예제 1
5 2 3 2 3 2 2
2 2 2 2 2
예제 2
5 5 4 2 3 7 6
3 2 3 4 5
예제 3
3 6 10 10 1
9 5 1