Codeforces Round 298 (Div. 2) |
---|
Закончено |
У Поликарпа есть n игральных костей d1, d2, ..., dn. На i-й игральной кости могут выпасть числа от 1 до di. Поликарп кинул все кости, и суммарно выпало A. Агрипина не видела, сколько выпало на каких костях, она знает только суммарное число A и значения d1, d2, ..., dn. Однако, уже этого ей достаточно, чтобы выдать серию утверждений вида: на кости i не могло выпасть число r. Например, если у Поликарпа было две шестигранных кости, а выпало суммарное значение A = 11, то Агрипина может утверждать, что на каждой из двух костей не могло появиться значение меньше пяти (в противном случае на оставшейся кости должно быть число не меньше семи, что невозможно).
Для каждой из костей найдите количество тех значений, которые гарантированно не могли выпасть на ней, если суммарно выпало A.
В первой строке заданы два целых числа n, A (1 ≤ n ≤ 2·105, n ≤ A ≤ s) — количество игральных костей и сумма выпавших значений, где s = d1 + d2 + ... + dn.
Вторая строка содержит n целых чисел d1, d2, ..., dn (1 ≤ di ≤ 106), где di — максимальное значение, которое может выпасть на i-й кости.
Выведите n целых чисел b1, b2, ..., bn, где bi — количество тех значений, которые гарантированно не могли выпасть на i-й кости.
2 8
4 4
3 3
1 3
5
4
2 3
2 3
0 1
В первом примере из условия A равное 8 могло выпасть только в одном случае, когда на первой и второй кости выпало по 4. Соответственно на обеих костях не могли выпасть значения 1, 2 или 3.
Во втором примере из условия A равное 3 могло выпасть, когда на единственной кости выпало 3. Соответственно на ней не могли выпасть значения 1, 2, 4 или 5.
В третьем примере из условия A равное 3 могло выпасть в случаях, когда на одной кости выпало 1, а на другой 2. Поэтому на первой кости нет значений, которые гарантированно не выпали, а на второй кости не могло выпасть 3.
Название |
---|