Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
Когда весна придёт, не знаю,
Пройдут дожди... Сойдут снега...
Но ты мне, улица родная,
И в непогоду дорога.
...
На этой улице подростком
Гонял по крышам голубей,
И здесь, на этом перекрёстке,
С любовью встретился своей.
...
Алексей Фатьянов, "На Заречной улице", 1955 г.
Песня из фильма "Весна на Заречной улице"
На Заречной улице в один ряд расположено n домов, на крышах которых сидят di голубей. Сталевар-передовик Саша, пробегая вдоль домов, пугает птиц, которые перелетают на крыши следующих по порядку домов по такому правилу:
Пусть на крыше дома с номером i сидят d голубей. Поднявшись в воздух, они распределяются по крышам оставшихся n − i домов по ⌊ dn − i⌋ штук, где скобки означают округление вниз до целой части. Не делящийся остаток целиком перелетает на крышу следующего i + 1 дома. Для определенности считайте, что скорость птиц существенно превосходит скорость Саши и они успевают перераспределиться до того момента, когда он добежит до следующего дома.
Пробежав мимо первых m домов, молодой рабочий встретит на перекрестке выпускницу пединститута Таню, остановится как вкопанный, и в жизни пернатых наконец-то наступит спокойствие.
До входным данным определите итоговую рассадку птиц.
Первая строка входного файла содержит натуральное число n — количество домов на улице. Во второй строке через пробел расположены n неотрицательных целых чисел di — начальная рассадка голубей по крышам. Третья строка входного файла содержит натуральное число m — количество домов на улице, мимо которых пробежит Саша.
Обратите внимание, что при заданных ограничениях для хранения ответа необходимо использовать 64-битный тип данных, например long long в C++, int64 в Free Pascal, long в Java.
Выведите через пробел n − m неотрицательных целых чисел di — конечную рассадку голубей по крышам оставшихся домов.
1 ≤ m < n ≤ 105
0 ≤ di ≤ 109
Баллы за каждый тест начисляются независимо.
Решения, верно работающие при m = n − 1, получат не менее 10 баллов.
Решения, верно работающие при di ≤ 100, получат не менее 20 баллов.
Решения, верно работающие при n ≤ 1000, получат не менее 20 баллов.
В примере n = 5 домов. На крыше первого дома 10 голубей, второго — 0, третьего — 2, четвертого — 7 и пятого — 3. Саша пробежит мимо первых трех домов из пяти.
Первые десять голубей перелетят на крыши следующих четырёх домов. Так как ⌊ 104⌋ = 2, на каждую из следующих крыш перелетит по два голубя, а еще два (не делящийся остаток) перелетит на крышу следующего дома. Теперь голуби сидят так: 0, 4, 4, 9, 5.
Когда Саша будет пробегать мимо второго дома, четыре голубя перелетят на крыши следующих трёх домов. Так как ⌊ 43⌋ = 1, на каждую из следующих крыш перелетит по одному голубю, а еще один (не делящийся остаток) перелетит на крышу следующего дома. Теперь голуби сидят так: 0, 0, 6, 10, 6.
Когда Саша будет пробегать мимо третьего дома, шесть голубей перелетят на крыши следующих двух домов. Так как ⌊ 62⌋ = 3, на каждую из следующих крыш перелетит по три голубя. Не делящийся остаток равен нулю. Теперь (и окончательно) голуби сидят так: 0, 0, 0, 13, 9.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|