Автор: | Игорь Синев (Городская олимпиада школьников Санкт-Петербурга по информатике 2006) | Ограничение времени: | 2 сек | |
Входной файл: | board.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | board.out |
— Это не шахматная доска! Это черт знает что! — возмущался Иван Петрович.
— Ну, не было у меня целой шахматной доски под рукой, — пытался оправдываться Петр Иванович, — дед у меня такой, как проиграет мне в шахматы, так сразу разобьет доску об угол стола. Только щепки летят... Вот, склеил из кусков...
— Но это же просто нонсенс! Как можно играть на такой доске... Вы, наверное, каждую клетку из отдельной доски вырезали!
— Да нет, всего-то три куска склеил...
Иван Петрович и Петр Иванович решили поиграть в шахматы. Однако у них не нашлось целой шахматной доски, поэтому Петр Иванович склеил ее из нескольких кусков. Каждый кусок вырезан из правильной шахматной доски.
Однако Иван Петрович считает что на полученной доске просто невозможно играть в шахматы. Поэтому вместо игры в шахматы они решили выяснить — а из какого минимального количества кусков шахматной доски Петр Иванович мог склеить эту доску. Помогите им!
Например, доска на рисунке слева может быть склеена из четырех кусков, как показано справа.
Выведите в выходной файл одно число — минимальное количество кусков, из которых могла быть склеена заданная во входном файле доска.
№ | Входной файл (board.in ) |
Выходной файл (board.out ) |
---|---|---|
1 |
|
|
Автор: | Михаил Дворкин (Городская олимпиада школьников Санкт-Петербурга по информатике 2006) | Ограничение времени: | 2 сек | |
Входной файл: | hyper.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | hyper.out |
Недавно Миша узнал о существовании многомерных пространств. В n-мерном пространстве точка задается набором из n вещественных координат. Миша сразу же догадался как измерить расстояние между двумя точками — расстояние между точками (x1, x2, …, xn) и (y1, y2, …, yn) равно sqrt((x1 − y1)2 + (x2 − y2)2 + … + (xn − yn)2).
Для начала он стал исследовать отрезки. Отрезок, соединяющий точки (x1, x2, …, xn) и (y1, y2, …, yn) — это множество точек с координатами (λ x1 + (1 − λ)y1, λ x2 + (1 − λ)y2, …, λ xn + (1 − λ)yn), где λ ∈ [0,1].
Миша называет точку с целочисленными координатами видимой, если на отрезке, соединяющем эту точку с началом координат (точкой, все координаты которой равны нулю), не лежит других целочисленных точек. Например, в двумерном пространстве точка (2, 1) является видимой, а точка (2, 2) — нет, во втором случае соответствующий отрезок содержит точку (1, 1).
Теперь Мишу заинтересовал вопрос — а в пространстве какой минимальной размерности существует видимая точка, расстояние от которой до начала координат равно sqrt(l). Также его интересует, а сколько видимых точек в пространстве этой размерности находятся на расстоянии sqrt(l) от начала координат. Помогите ему решить эту задачу.
Входной файл содержит целое число l.
На первой строке выходного файла выведите n — минимальную размерность пространства, в которой существует искомая точка. На второй строке выведите n целых чисел — координаты любой такой точки. На третьей строке выведите количество таких точек в пространстве размерности n.
№ | Входной файл (hyper.in ) |
Выходной файл (hyper.out ) |
---|---|---|
1 |
|
|
Автор: | Городская олимпиада школьников Санкт-Петербурга по информатике 2006 | Ограничение времени: | 1 сек | |
Входной файл: | parcel.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | parcel.out |
Почтовый поезд уже готов к отправлению, и тут рядом с платформой останавливается дилижанс, из которого выскакивает сам начальник почтового отделения. Он подбегает к поезду и вручает Бобу посылку. Боб заходит внутрь вагона и обнаруживает, что места на такую большую посылку уже точно не осталось. Свободна только одна маленькая полочка под самым потолком. Но начальник уверяет, что эту посылку просто необходимо доставить. Похоже, придется переставлять коробки с одной полки на другую. А ведь времени осталось так мало!
Согласно инструкции, Боб может действовать следующим образом: за одно действие он может взять коробку с некоторой полки и перенести ее на другую полку.
Для каждой полки известен максимальный вес коробки, которую можно на ней разместить. При этом, поскольку времени очень мало, Бобу нужно постараться освободить полку для вновь прибывшей посылки, совершив минимальное количество действий.
К сожалению, Боб не очень быстро соображает, так что вы очень поможете ему, если напишете программу, которая найдет для него нужный порядок действий.
На первой строке записано целое число n — количество полок в вагоне.
На второй строке содержатся n целых чисел ci, разделенных пробелами. i-е из них задает максимальный вес предмета, который можно поставить на полку номер i.
На третьей строке задано n − 1 натуральное число wi — веса коробок, стоящих на соответствующих полках (последняя полка изначально пуста).
В последней строке задан вес a новой посылки, которую требуется поставить.
На первой строке выходного файла запишите минимальное число действий m, которое придется совершить Бобу.
На второй строке выведите описания этих действий — m − 1 натуральное число, задающие, предмет с какой полки перемещается на ту, которая свободна в текущий момент времени (последним действием ставится привезенная посылка). Если поставить посылку невозможно ни при какой последовательности действий, выходной файл должен содержать число − 1.
№ | Входной файл (parcel.in ) |
Выходной файл (parcel.out ) |
---|---|---|
1 |
|
|
2 |
|
|