Voronezh State University - Sitronics contest II
A. A+B?
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Однажды Максим поспорил, что сможет придумать задачу с самым коротким условием, способную растрогать любого. Он выиграл спор:

«По заданным числам $$$n$$$ и $$$p$$$ посчитайте количество возможных пар ($$$a, b$$$), таких что $$$a + b = n$$$ и $$$-10^{p} \le a, b \le 10^{p}$$$.»

Входные данные

Единственная строка содержит два целых числа $$$n$$$ ($$$-2 \cdot 10^{9} \le n \le 2 \cdot 10^{9}$$$) и $$$p$$$ ($$$1 \le p \le 9$$$).

Выходные данные

Выведите одно целое число – ответ на задачу.

Примеры
Входные данные
7 1
Выходные данные
14
Входные данные
-4 1
Выходные данные
17
Входные данные
25 1
Выходные данные
0

B. Оцениваем сложность задач
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Никита и Максим оценивают сложность задач. Каждая задача характеризуется длиной условия $$$x$$$ и длиной кода-решения $$$y$$$. Никита предполагает, что сложность задачи определяется как $$$x^{y}$$$, а Максим считает, что сложность задачи это $$$y^{x}$$$.

Помогите ребятам понять какое отношение имеют оценки сложности $$$x^{y}$$$ и $$$y^{x}$$$.

Входные данные

Единственная строка содержит два целых положительных числа $$$x$$$ и $$$y$$$ ($$$1 \le x, y \le 10^{9}$$$).

Выходные данные

Выведите одно из трех:

  • '<', если $$$x^{y} \lt y^{x}$$$
  • '=', если $$$x^{y} = y^{x}$$$
  • '>', если $$$x^{y} \gt y^{x}$$$
Примеры
Входные данные
3 5
Выходные данные
>
Входные данные
7 7
Выходные данные
=

C. Стрельба из лука
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Максим большой любитель всевозможных игр. В этот раз он играет в игру под названием «Minecraft».

В этот раз ему пришла отличная идея построить огромную мишень и потренироваться стрельбе из лука. По задумке Максима мишень будет выглядеть как квадрат с четной стороной $$$x$$$ и каждый внутренний слой покрашен или в белый или в красный цвет, при этом цвета должны чередоваться (для лучшего понимания смотрите картинку):

Пример мишени $$$8 \times 8$$$.
Пример мишени $$$4 \times 4$$$.

Также Максим хочет сделать эту мишень из шерсти, однако у него не так много шерсти красного цвета, а именно $$$n$$$ блоков. Помогите Максиму выяснить какая максимальная сторона $$$x$$$ может быть у его мишени!

Входные данные

Единственная строка содержит одно целое число $$$n$$$ ($$$4 \le n \le 1000$$$).

Выходные данные

Выведите одно целое число $$$x$$$ – ответ на задачу.

Примеры
Входные данные
5
Выходные данные
4
Входные данные
12
Выходные данные
6

D. Оптимальные пирожки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Маша и Петя любят есть пирожки. Бабушка решила их сегодня обрадовать и испечь им $$$n$$$ пирожков с капустой и с грибами. Бабушка замесила тесто, положила пирожки в духовку и пошла спать. Однако, когда вкусно запахло, внуки не выдержали и решили съесть немного пирожков. Пирожки лежат в духовке в один ряд слева направо. Маша хочет брать каждый третий пирожок, а Петя каждый седьмой.

К примеру, Маша хочет взять пирожок $$$3, 6, 9, 12, 15, 18, 21, 24$$$ и так далее, а Петя $$$7, 14, 21, 28...$$$ Внуки берут пирожки по очереди, начиная слевой стороны духовки. Маша начинает первой брать пирожки. Если один из внуков взял уже пирожок под номером $$$x$$$, то другой берёт следующий. Например, Петя возьмет третий пирожок под номером $$$21$$$. Следовательно, когда Маша будет брать свой седьмой пирожок, она возьмёт пирожок под номером $$$24$$$.

Скажите, сколько пирожков с грибами съест каждый из внуков.

Входные данные

Первая строка содержит количество пирожков $$$n$$$ ($$$1 \le n \le 10^{5}$$$).

В следующей строке задаётся $$$n$$$ значений $$$a_{i}$$$ ($$$0 \le a_{i} \le 1$$$) – если $$$0$$$, то пирожки с капустой, иначе с грибами.

Выходные данные

Выведите два числа через пробел - количество пирожков с грибами, которое съест Маша, а затем Петя.

Примеры
Входные данные
7
1 1 0 1 0 1 1
Выходные данные
1 1
Входные данные
24
1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1
Выходные данные
5 2
Входные данные
1
1
Выходные данные
0 0

E. Эффективная синхронизация
ограничение по времени на тест
10 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В вашем распоряжении $$$k$$$ серверов, на этих серверах хранится информация, ее можно представить в виде массива из $$$n$$$ элементов. В изначальный момент времени вся информация на всех $$$k$$$ серверах одинаковая, вам она будет дана в виде массива $$$a$$$. Также в некоторые моменты времени к серверам поступают запросы, запросы бывают двух типов:

  • «Set sid pos val» – изменить информацию на sid-м сервере в позиции pos на значение val.
  • «Get sid pos» – получить значение на sid-м сервере в позиции pos.

Вы бы хотели создать такую систему, которая позволит быстро обрабатывать все эти запросы. Но это еще не все, также вы бы хотели настроить синхронизацию между всеми серверами раз в $$$s$$$ секунд, то есть каждые $$$s$$$ секунд серверы обмениваются информацией и обновляются так, что между данными двух различных серверов нет различий. Конфликты, которые возникают при синхронизации, должны устраняться в автоматическом режиме следующим образом: допустим на серверах в позиции $$$i$$$ находятся разные значения, тогда при синхронизации для обновления будет выбрано то значение, которое было позже обновлено, то есть если на сервере $$$x$$$ в $$$i$$$-й позиции значение было изменено в момент времени $$$t_{1}$$$, а на сервере $$$y$$$ в $$$i$$$-й позиции в момент $$$t_{2}$$$ и при этом $$$t_{1} \gt t_{2}$$$, то будет выбрано значение на сервере $$$x$$$.

Сможете ли вы справиться с такой задачей?

Входные данные

Первая строка содержит три целых числа $$$k, n$$$ ($$$1 \le k, n \le 10^{5}$$$) и $$$s$$$ ($$$1 \le s \le 10^{9}$$$) – количество серверов, размер массива данных на каждом сервере и период синхронизации соответственно.

Вторая строка содержит $$$n$$$ целых чисел $$$a_{i}$$$ ($$$-10^{9} \le a_{i} \le 10^{9}$$$) – информацию, которая хранится на каждом сервере в нулевой момент времени.

Третья строка содержит одно целое число $$$q$$$ ($$$1 \le q \le 10^{6}$$$) – количество запросов.

Следующие $$$q$$$ строк содержат запросы, по одному на каждой строке. Запросы даны в следующем формате:

  • «time Set sid pos val»
  • «time Get sid pos»

Для каждого запроса, помимо параметров, описанных в условии, также дан момент времени, в который он приходит. Параметры имеют ограничения ($$$1 \le time \le 10^{9}$$$), ($$$1 \le sid \le k$$$), ($$$1 \le pos \le n$$$), ($$$-10^{9} \le val \le 10^{9}$$$).

Обратите внимание, что если какой-либо запрос приходит в момент времени $$$t$$$ и при этом в этот момент должна произойти синхронизация ($$$t \bmod s = 0$$$), то сначала происходит синхронизация серверов, а потом уже системой обрабатывается этот запрос.

Запросы даны в порядке увеличения $$$time$$$.

Гарантируется, что никакие два запроса не имеют одинаковый $$$time$$$.

Выходные данные

Для каждого запроса типа «Get» выведите ответ, который даст ваша система.

Примеры
Входные данные
2 5 10
3 2 2 4 4
5
4 Get 2 3
7 Set 2 3 1
8 Get 1 3
9 Get 2 3
100 Get 1 3
Выходные данные
2
2
1
1
Входные данные
5 5 60
0 0 0 0 0
8
1 Get 1 5
2 Set 2 2 7
7 Set 5 2 1
59 Get 2 2
60 Get 2 2
61 Get 3 2
69 Set 4 1 9
120 Get 1 1
Выходные данные
0
7
1
1
9

F. Музей изобразительных искусств
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Студенты ВГУ не только участвуют в различных соревнованиях по программированию, но и посещают музеи. В этот раз в очередном городе Никита предложил сходить в музей изобразительных искусств. Из всех представленных картин ему больше всего понравились работы Ивана Шишкина. Вдохновлённый великим русским живописцем, Никита решил нарисовать свой шедевр в виде ASCII рисунка. Для того чтобы ASCII рисунок был шедевром, в нём должно быть следующее:

  1. Рисунок обрамлён прямоугольной рамкой, которая состоит из символов '+' по углам, '-' на горизонтальных границах и '|' на вертикальных границах.
  2. На рисунке изображено $$$n$$$ деревьев. Каждое дерево состоит из ствола и кроны, которые задаются параметрами $$$s_{i}$$$ и $$$t_{i}$$$. Ствол дерева состоит из $$$s_{i}$$$ символов '|', при этом самая нижняя часть ствола обязательно рисуется от нижней границы рамки. Деревья бывают трёх видов в зависимости от символа, из которого состоит крона дерева. Крона дерева представляет из себя равнобедренный треугольник с высотой $$$t_{i} + 1$$$ и основанием $$$2 \cdot t_{i} + 1$$$, который граничит с верхней частью ствола и состоит из одинаковых символов $$$c$$$. Ствол дерева при этом находится ровно посередине основания треугольника кроны. В зависимости от типа дерева символ $$$c$$$ равен '*', '+' или '#'. Для лучшего понимания, как рисуется дерево, обратите внимание на рисунок.
  3. Каждое дерево полностью помещается на рисунке, то есть рисунки деревьев и границы рамки не пересекаются, но могут касаться.
  4. Если два любых дерева касаются кронами, то они должны быть разных видов. Деревья $$$x$$$ и $$$y$$$ касаются кронами, если существует символ кроны, принадлежащий дереву $$$x$$$, у которого есть соседний по стороне символ кроны, принадлежащий дереву $$$y$$$.
  5. Прямоугольная рамка рисунка имеет минимальный периметр.
  6. Символы внутри рамки, которые не принадлежат ни одному из деревьев, – пробелы (то есть символ с ASCII кодом $$$32$$$).
Правильные рисунки деревьев.
Неправильные рисунки деревьев.
Правильный (слева) и неправильный (справа) ASCII рисунки.

По заданным $$$n$$$ деревьям скажите, как будет выглядеть шедевр Никиты!

Если существует несколько вариантов ответа, подходящих под все вышеописанные условия, то разрешается вывести любой.

Входные данные

Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 8$$$) – количество деревьев.

Следующие $$$n$$$ строк содержат по два целых числа $$$s_{i}$$$ и $$$t_{i}$$$ ($$$1 \le s_{i}, t_{i} \le 10$$$) – параметры $$$i$$$-го дерева.

Выходные данные

Выведите ASCII рисунок.

В выходных данных не должно быть лишних символов, которые не принадлежат рисунку!

Примеры
Входные данные
3
1 1
2 2
3 3
Выходные данные
+-----------+
|   +       |
|  +++      |
| +++++  *  |
|+++++++*** |
| # |  *****|
|###|    |  |
| | |    |  |
+-----------+
Входные данные
4
1 1
1 1
1 1
1 1
Выходные данные
+------------+
| +  *  +  * |
|+++***+++***|
| |  |  |  | |
+------------+

G. Кубики бабушки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Маша и её бабушка играют в кости. Девочка подбрасывает кубик и говорит число, оказавшееся на нем. Бабушка очень стара и плохо видит, но всё слышит. Маша может исказить результат любого броска кости. Например, если выпало на кубиках $$$2$$$, а Маша сказала, что $$$5$$$, то результатом будет $$$5$$$. Однако, если бабушка слышит подряд три шестёрки, то она берёт лупу и проверяет только последний бросок, после этого количество подряд идущих шестерок сбрасывается.

Маша очень любит бабушку и не хочет её расстроить, но при этом мечтает набрать максимальную сумму очков. Помогите Маше набрать максимальную сумму очков так, чтобы бабушка не уличила внучку в обмане.

Входные данные

Первая строка содержит количество бросков $$$n$$$ ($$$1 \le n \le 10^{5}$$$).

В следующей строке задаётся $$$n$$$ значений $$$a_{i}$$$ ($$$1 \le a_{i} \le 6$$$) – реальное число очков на кубике после $$$i$$$-го броска.

Выходные данные

Выведите одно число – максимальную сумму очков, которую может набрать Маша.

Примеры
Входные данные
3
1 1 6
Выходные данные
18
Входные данные
3
2 3 5
Выходные данные
17

H. Для начала пройдите тест
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это интерактивная задача.

Вы же любите проходить тесты, так?

Тест представляет собой список из $$$n$$$ вопросов, на каждый вопрос есть два варианта ответа, и ровно один из них верный. После прохождения теста вы получаете оценку, система оценки следующая:

  • Менее $$$50\%$$$ правильных ответов – оценка $$$2$$$.
  • От $$$50\%$$$ до $$$69\%$$$ правильных ответов – оценка $$$3$$$.
  • От $$$70\%$$$ до $$$89\%$$$ правильных ответов – оценка $$$4$$$.
  • От $$$90\%$$$ правильных ответов – оценка $$$5$$$.

Оценки $$$3, 4, 5$$$ являются удовлетворительными.

Тест можно проходить максимум $$$3$$$ раза.

Пройдите тест на удовлетворительную оценку!

Входные данные

Первая строка содержит одно целое число $$$n$$$ ($$$1 \le n \le 100$$$) – количество вопросов в тесте.

Протокол взаимодействия

После того, как вы считали $$$n$$$, вы можете начать попытку. Для этого выведите: «Start test» на новой строке.

После того как началась попытка, вам будут подаваться вопросы. Каждый вопрос состоит из трех строк. В первой строке находится описание вопроса, во второй – первый вариант ответа, на третьей – второй вариант ответа. Для каждого вопроса вы должны вывести на новой строке «A», если вы выбрали первый вариант ответа, или «B», если второй.

Обратите внимание, что следующий вопрос вы получите только после того, как выберете вариант для текущего. После того, как вы ответите на $$$n$$$-й вопрос, вам необходимо считать строку – результат за текущую попытку, строка имеет формат «Your result: mark», где mark – ваша оценка. Если эта оценка удовлетворительная, то более ничего делать не нужно, и ваша программа должна завершиться. В противном случае вы можете начать следующую попытку, если еще не превысили лимит.

Обратите внимание, что начать попытку вы можете максимум $$$3$$$ раза. Если же вы превысите лимит попыток, то следующая строка, которую вы считаете, будет «Attempts exceeded». В таком случае ваша программа должна немедленно завершиться. Также, если вы сделаете некорректный выбор или выведете не то, что ожидает система, то в ответ вы получите «Incorrect output», и ваша программа должна завершиться.

Гарантируется, что все тесты состоят только из ASCII символов с кодами от $$$32$$$ до $$$126$$$, а также что длина любой строки не превышает $$$256$$$ символов.

После любого вывода не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:

  • fflush(stdout) или cout.flush() или std::endl в C++;
  • System.out.flush() в Java;
  • flush(output) в Pascal;
  • stdout.flush() в Python;
  • смотрите документацию для других языков.
Примеры
Входные данные
5

1) Cats have nine lives?
A) YES
B) NO

2) Are moles blind?
A) YES
B) NO

3) Does a fly agaric kill flies?
A) YES
B) NO

4) Does an octopus have one heart?
A) YES
B) NO

5) Can turtles cry?
A) YES
B) NO

Your result: 4
Выходные данные

Start test



B



B



A



B



A


Входные данные
2

How much is 2*2+2?
1. 6
2. 8

The minimum of 0 and 1 is
1. 1
2. 0

Your result: 2

How much is 2*2+2?
1. 6
2. 8

The minimum of 0 and 1 is
1. 1
2. 0

Your result: 5
Выходные данные

Start test



B



A

Start test



A



B

Примечание

Ввод и вывод для наглядности разделены пустыми строками. Реальный тест не содержит этих пустых строк.

I. 2B
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У вас есть число $$$x$$$. Это число слишком большое, вы хотели бы записать его в сокращенной форме. Для однозначности вы решили ввести правила сокращения любого неотрицательного числа следующим образом:

  • Сокращенная форма числа состоит из не более чем $$$4$$$ символов.
  • Если число $$$x \lt 1000$$$, то его сокращенная форма совпадает с полной, иначе сокращенная форма состоит из числа $$$a$$$ (возможно вещественного) и латинского символа $$$c$$$ (одного из K, M, B), обозначающего степень десятки: K – тысяча, M – миллион, B – миллиард. Значением сокращенной записи назовем число $$$y$$$, равное $$$a$$$, умноженному на соответствующую степень десятки, в зависимости от символа $$$c$$$.
  • Цифры сокращенной формы совпадают с первыми цифрами полной формы.
  • Из всех возможных вариантов сокращенной формой $$$x$$$ является та, чье значение не превосходит $$$x$$$ и наиболее близко к $$$x$$$. Если таких форм несколько, то выбирается наиболее короткая (см. примеры).

Запишите число в его сокращенной форме!

Входные данные

Единственная строка содержит одно целое число $$$x$$$ ($$$0 \le x \lt 10^{12}$$$).

Выходные данные

Выведите одну строку – сокращенную запись числа $$$x$$$.

Примеры
Входные данные
567
Выходные данные
567
Входные данные
1099
Выходные данные
1K
Входные данные
9588
Выходные данные
9.5K
Входные данные
2000000000
Выходные данные
2B
Входные данные
876289
Выходные данные
876K
Примечание

Во втором тесте есть несколько сокращенных форм, имеющих наиболее близкое значение к $$$x$$$: 1.0K и 1K. Однако согласно четвертому пункту из них нам подходит самая короткая, то есть 1K.

J. Совершенный редактор карт
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Максим большой любитель всевозможных игр. В этот раз он играет в игру под названием «Heroes of might and magic III».

Каждый сценарий в ней играется на определенной карте, которая представляет собой прямоугольник из $$$n \times m$$$ клеток. Каждая клетка имеет свой тип ландшафта, например «трава», «болото», «песок» и т.д. Визуально, некоторые клетки с одинаковым типом ландшафта образуют компоненты связности$$$^{\ast}$$$. Этих компонент может быть много, однако Максиму нравятся сценарии, где на карте есть не более двух типов ландшафтов и суммарное количество компонент связности в точности равно $$$k$$$.

Вы, как самый опытный картостроитель, пообещали придумать карту, которая понравится Максиму. Сможете ли вы сдержать это обещание?

Компонента связности$$$^{\ast}$$$ – это связная область таблицы, состоящая из одного и того же символа, а также для любой пары клеток $$$(x_{1}, y_{1})$$$, $$$(x_{2}, y_{2})$$$, принадлежащих этой области, существует путь из $$$(x_{1}, y_{1})$$$ в $$$(x_{2}, y_{2})$$$$$$^{\ast}$$$, состоящий только из клеток этой связной области.

Путь в таблице из $$$(x_{1}, y_{1})$$$ в $$$(x_{2}, y_{2})$$$$$$^{\ast}$$$ – это последовательность клеток, которая начинается в $$$(x_{1}, y_{1})$$$, заканчивается в $$$(x_{2}, y_{2})$$$ и любые две рядом стоящие клетки в этой последовательности являются соседними по стороне.

Входные данные

Единственная строка содержит три целых числа $$$n$$$, $$$m$$$, $$$k$$$ ($$$1 \le n, m \le 1000$$$, $$$1 \le k \le n \cdot m$$$).

Выходные данные

Если такую карту можно создать, то в первой строке выведите «YES» без кавычек и далее выведите саму карту с новой строки. Она должна состоять из символов '0'и '1' и иметь ровно $$$k$$$ компонент связности.

Если невозможно построить такую карту, то выведите «NO» без кавычек.

Примеры
Входные данные
5 5 5
Выходные данные
YES
00001
11111
00000
01001
11101
Входные данные
3 3 6
Выходные данные
YES
010
001
010
Входные данные
5 4 19
Выходные данные
NO
Входные данные
4 4 11
Выходные данные
YES
1010
0010
0101
1010

K. Ключевая анаграмма
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дана строка $$$s$$$, состоящая из $$$n$$$ маленьких латинских букв. Вы бы хотели найти ее ключевую анаграмму порядка $$$k$$$. Ключевая анаграмма порядка $$$k$$$ – это лексикографически минимальная строка $$$t$$$ длины $$$k$$$, которая получается из некоторой подстроки исходной строки $$$s$$$ путем перестановки букв в ней. Другими словами, ключевая анаграмма порядка $$$k$$$ это лексикографически минимальная анаграмма какой-то подстроки длины $$$k$$$ исходной строки $$$s$$$.

Напоминаем, что строка $$$a$$$ лексикографически меньше строки $$$b$$$, если и только если выполняется один из следующих пунктов:

  • $$$a$$$ – префикс $$$b$$$, но $$$a \neq b$$$;
  • в первой позиции, где $$$a$$$ и $$$b$$$ различны, в строке $$$a$$$ находится буква, которая встречается в алфавите раньше, чем соответствующая буква в $$$b$$$.
Входные данные

Первая строка содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le k \le n \le 10^{6}$$$) – длина строки и размер необходимой подстроки.

Во второй строке находится $$$s$$$.

Выходные данные

Выведите строку $$$t$$$ – ключевую анаграмму порядка $$$k$$$.

Примеры
Входные данные
10 3
teamspirit
Выходные данные
aem
Входные данные
16 5
gaminggladiators
Выходные данные
aadil

L. Линия без начала, линия без конца
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это интерактивная задача.

Мы загадали прямую в виде $$$y = kx + b$$$. Ваша задача отгадать эту прямую.

Вы можете делать запросы, в одном вопросе вы указываете точку ($$$x, y$$$) и получаете в ответ кратчайшее расстояние от точки до прямой.

Сможете ли вы справиться не более чем за $$$5$$$ запросов?

Входные данные

Гарантируется, что ($$$-100 \le k, b \le 100$$$).

Протокол взаимодействия

Вы можете сразу начать делать запросы. Чтобы это сделать, выведите:

  • «? x y» ($$$-100 \le x, y \le 100$$$)

на отдельной строке. После вывода запроса считайте неотрицательное вещественное число $$$d$$$ с точностью до $$$20$$$ знаков – кратчайшее расстояние от данной вами точки до прямой. Если вы сделаете некорректный запрос или превысите установленный лимит в $$$5$$$ запросов, то в ответ вы получите число $$$-1$$$, в таком случае ваша программа должна немедленно завершиться.

Чтобы вывести ответ, выведите

  • «! k b»

на отдельной строке. Ваш ответ будет считаться правильным, если относительная или абсолютная погрешность коэффициентов $$$k$$$ и $$$b$$$ будет не более $$$10^{-3}$$$.

После любого вывода не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:

  • fflush(stdout) или cout.flush() или std::endl в C++;
  • System.out.flush() в Java;
  • flush(output) в Pascal;
  • stdout.flush() в Python;
  • смотрите документацию для других языков.
Примеры
Входные данные

1.41421356237309504876

0.70710678118654752438

Выходные данные
? 0.000 0.000

? 0.000 1.000

! 1.0000 2.0001
Входные данные

0.00000000000000000000

0.00000000000000000000

5.00000000000000000000

5.00000000000000000000

2.50000000000000000000
Выходные данные
? 0 5

? 5 5

? 5 0

? 0 0

? 2.5 2.5

! 0.000000011 5.00000003
Примечание

Ввод и вывод для наглядности разделены пустыми строками. Реальный тест не содержит этих пустых строк.