Олимпиады по программированию

olympiads.ru

Олимпиады прошлых лет
2020/21
2019/20
2018/19
2017/18
2016/17
2015/16
2014/15
2013/14
2012/13
2011/12
2010/11
2009/10
2008/09
2007/08
2006/07

IV открытая олимпиада школьников по программированию (2009/10)
Доска объявлений олимпиады
Информация об олимпиаде
Заключительный этап
Информация о заключительном этапе
Список приглашенных
Результаты заключительного этапа
Задачи, тесты
Персональные странички участников
Предварительное раписание
Система оценки решений на заключительном этапе
Информация для иногородних участников
Планируемое размещение иногородних
Как добраться
Заочный этап
Задачи, тесты
Регистрация
1 тур
Персональная страничка участника
Текущие результаты
2 тур
Персональная страничка участника
Текущие результаты
Примеры реализации ввода-вывода на разных языках
FAQ по работе с тестирующей системой
Связаться с оргкомитетом

Олимпиада проводится при поддержке Московского физико-технического института, Компьютерной компании НИКС, Компании Yandex

Информационная поддержка:
журнал "Мир ПК"

IV Открытая олимпиада школьников по программированию, 2009/10 учебный год

Задача E. Стройка-2

Имя входного файла: e.in
Имя выходного файла: e.out
Максимальное время работы на одном тесте: 1 секунда
Максимальный объем используемой памяти: 64 мегабайта

На территории строительства растут два дерева. Согласно плану работ, оба дерева попадают внутрь будущей цветочной клумбы, имеющей форму круга. Нужно огородить эти деревья треугольным забором так, чтобы ограждение содержалось внутри будущей клумбы.

Деревья на плане изображаются кругами, которые могут пересекаться друг с другом или даже быть вложены один в другой (деревья могли срастись из-за локальных загрязнений окружающей среды, неизбежных при строительстве). Они лежат внутри окружности, соответствующей клумбе, но могут касаться её.

Напишите программу, которая по введенной информации о клумбе и деревьях определит, возможно ли построить треугольный забор, не выходящий за пределы клумбы (при этом его вершины могут лежать на границе клумбы) и содержащий оба дерева внутри (касание забора и деревьев также разрешается).

Формат входных данных

Вводится информация о трех окружностях: каждая задается координатами центра и радиусом. Все числа целые, не превосходящие по модулю 1000, радиус - натуральное число. Клумбе соответствует первая окружность, вторая и третья окружности лежат внутри первой и соответствуют деревьям.

Формат выходных данных

Если деревья невозможно оградить забором, не выходящим за границы клумбы, выведите impossible. Иначе в первую строку запишите possible, а в следующие - координаты вершин искомого треугольника. Если ответов несколько, выведите любой.

Примеры

e.in e.out
0 0 1000
0 0 500
0 0 500
possible
-468.09507906626652000000 -883.67810709213904000000
-531.24014997680422000000 847.22128340394170000000
999.33522904307131000000 36.45682368819722500000