Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Fantasy chess is a variant of chess composition. Puzzles of this variant contain changes to some of the accepted rules of the game or utilize unusual pieces or boards.
Amazon is a fantasy chess piece which can move as either a queen or a knight. It is usually represented on diagrams as a horse with the crown. You can see all possible moves of this piece on a picture below. Amazon is so strong and independent that it can checkmate the enemy king without the help of another friendly piece.
White amazon and black king are positioned on a normal chess board. Determine whether the king is checkmated.
First line of input contains two integers separated by space: x1 and y1 — coordinates of the white amazon. Second line contains coordinates of the black king x2 and y2 in the same format. Piece positions are guaranteed to be different.
Output Yes
or No
— answer to the problem's question.
1 ≤ x1, x2, y1, y2 ≤ 8
See the picture. In the second sample the king can capture the amazon.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Oh, those math lessons! Today, for example was the fourth test on the subject. To those who finished ahead of time the teacher offered an extra task for bonus points.
Two n-digit numbers are written on the blackboard, first composed of only the digit d1, second — of only the digit d2. Determine which digit occupies position k in the sum of those numbers. Positions are numbered left to right starting from 1.
You want bonus points, don't you?
Four lines of input contain four integers: n, d1, d2 and k. It is guaranteed that k is correct.
Output a single decimal digit — answer to the problem.
1 ≤ n ≤ 109
1 ≤ k ≤ n + 1
1 ≤ d1, d2 ≤ 9
Sample has n = 2 (adding two-digit numbers), d1 = 5 (first number is 55), d2 = 8 (second number is 88). Sum is 55 + 88 = 143. k = 1 (teacher asks the first digit of the result). The digit at first position of the number 143 is 1.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Let there be a set of triangles represented by 3-dimensional vertex coordinates.
You must determine all maximal subsets of triangles such that triangles of each set belong to a single plane.
Input contains integer N, followed by 9 × N integers, representing vertex coordinates:
(X1i, Y1i, Z1i), (X2i, Y2i, Z2i), (X3i, Y3i, Z3i), where i = 0, 1, …, (N − 1).
Output must contain the number of subsets M, followed by M records of the following structure.
The number of triangles present in the set, followed by their indices in input (indexing starts at 0).
Both sets and triangles may be output in arbitrary order.
It is guaranteed that there are no degenerate (zero area) triangles in input.
− 1000 ≤ (Xki, Yki, Zki) ≤ 1000,
2 ≤ N ≤ 105.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Let there be a rectangular ASCII-art image of a digital circuit, composed of logical elements and wires connecting them.
Logical elements are represented as rectangular areas bordered by '#' (ASCII 35) characters.
Each element always contains a description composed of digits and small Latin letters.
Description may be split into several parts, separated by spaces, and span multiple lines.
Wires are represented as sequences of '.' (ASCII 46) characters.
The rest of the circuit is filled with spaces.
Any two elements can not be adjacent to each other (there is always space between them).
Wires can only connect at 90 ∘ angle.
Parallel wires can not be adjacent to each other (there is always space between them).
An element is considered connected to a wire if their characters are adjacent either horizontally or vertically.
Wires can not cross area occupied by an element.
Bus is a set of connected wires.
Given the image, determine the set of logical elements and buses connected to them.
Input contains an ASCII image.
Output the number of logical elements N,
followed by N lines, with each line containing a description of a single element.
Parts of a description must be separated by spaces.
Order of elements in output must correspond to the order at which elements occur
in the input image when traversing by rows from the top-left corner.
Next, output the number of buses M, followed
by sets of connected elements.
Each set starts with a number of elements in it,
followed by element indices
(starting from zero).
Total number of characters in the image does not exceed 106.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Consider a set of all possible strings of exactly n characters, consisting of digits and small Latin letters.
Hamming distance H(A, B) is equal to the number of positions i from 1 to n
where A[i] ≠ B[i].
Let us define P(A, B) as a set of strings of length n equidistant from A and B
({ C: H(A, C) = H(B, C)}).
Determine the number of strings in the set P(A, B).
Since the answer may be too large, output the remainder of it divided by 109.
Input contains two strings: A и B.
Output a single integer — the answer.
1 ≤ n ≤ 104.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Author: | A. Usmanov | Time limit: | 1 sec | |
Input / output: | interactive | Memory limit: | 512 Mb |
This is an interactive problem. Your program will interact with a jury program by sending and receiving particular messages.
Chess board is a field of 8 by 8 of alternating white and black cells. Columns are indicated by letters from A to H, rows — by digits from 1 to 8.
Cell coordinates are encoded as [column][row]
, for example E2.
The cell A1 in the bottom left is black.
There is a bishop on the chess board at some cell of a given color. Recall that the bishop is a piece which can move over diagonals in any direction for any number of cells. The goal is to determine actual position of the bishop by monitoring some rectangular areas of the board.
Your program must make requests of the form "? A B
", where A and B — coordinates of two board cells, bottom left and top right of the rectangle you want to monitor.
After every request the bishop makes a move and your will receive a reply communicating which of the monitored rectangles contain the bishop after the move.
Your program must determine the bishop position by making no more than 6 requests. It is guaranteed that bishop moves are predetermined and do not depend on requests.
First line of input contains string color, with value of either white
or black
—
color of the cell initially occupied by bishop.
To make a request, your program must output line "? A B
",
where A, B — strings of two characters, coordinates of the bottom left and top right of the rectangle you want to monitor.
After setting the monitoring bishop moves and jury program replies to your program with the string S of characters 1 or 0 — with i-th characters equals 1, if bishop is inside the i-th monitored rectangle.
When your program determines the current bishop position X, it must output "! X
",
where X
— string of two characters, bishop cell coordinates.
After outputting the answer your program must terminate.
If your program makes incorrect query, it will receive "Presentation error" verdict. If your program exceeds allowed number of queries, it will receive "Wrong answer" verdict.
Every query and final output must be a single line ending with single end-of-line (\n
).
Output buffers must be flushed after every line:
Language | C++ | Pascal | Java | Python |
Code | cout.flush() |
flush(output) |
System.out.flush() |
stdout.flush() |
"A1"
≤ A, B, X ≤ "H8"
A ≤ B
Bishop movements and monitored areas from the first sample are presented on the picture.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Let there be two disjoint sets of nodes of some oriented graph: A and B.
For each node of A, set of all nodes of B reachable from it is also given.
It is known that any node of A should not have incoming edges, and that any node of B should not have outgoing edges.
There can be set of intermediate nodes C in the graph that connected with nodes from A and B.
But any two nodes from C should not be connected to each other.
You are to obtain a graph with minimal number of edges satisfying this description.
If several optimal variants exist, choose a graph with minimal number of nodes.
The answer is the number of nodes and edges in the obtained graph.
Input contains two integers: N — size of A and M — size of B,
followed by the subsets of nodes of B reachable from every node of A.
Each subset starts with a number of nodes in it (may be zero),
followed by the indices of nodes (indexing starts from zero).
Output must contain two integers: number of nodes and edges.
1 ≤ (N, M) ≤ 1000
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
The city of N has a happy event! On the single street of the city, new street lamp will be installed and the new pharmacy will open. Help the city governor to find optimal places for these objects.
The street is represented by a segment of coordinate axis, where the leftmost house has coordinate 0. Let's assume house sizes to be negligibly small compared to the street length and represent houses as points on the axis.
The lamp has "brightness" parameter expressing the largest distance from the lamp where the light reaches. For example when brightness is equal to 10, lamp installed at the point x = 25 will light the street on the segment from 15 to 35 inclusive.
The pharmacy has "remoteness" parameter expressing the largest distance from it to the house such that people from that house will still visit. For example when remoteness is equal to 100, pharmacy located at point x = 25, will be visited by people living in houses with coordinates from 0 to 125 inclusive (there are no houses with negative coordinates).
First line of input contains three integers separated by spaces: n — number of houses, a — brightness и b — remoteness. Next n lines contain two space-separated integers each: xi, qi — coordinate of the house and number of people living in it (houses may be empty).
Output two integers — maximum number of houses illuminated by the lamp and maximum number of people who will visit the pharmacy. Both lamp and pharmacy may be located between the houses as well as at points with the coordinate of some house.
1 ≤ n, a, b ≤ 105
0 ≤ xi, qi ≤ 109
Sample contains five houses, lamp brightness 15 and pharmacy remoteness 20. Lamp can be installed at either point 15, or point 25, in both cases 4 houses will be illuminated. Pharmacy may be located at point 20, in which case all city inhabitants will be able to visit.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Zhenya Slavin is a first human born on Mars. He is yet a little boy and likes to look at the digital clock hanging opposite of his bed. Most of all he likes the moments when all digits on the clock become identical. In those moments he always claps joyfully.
Since the period of rotation of Mars around its axis is different from that of the Earth, Martian colonists decided that:
Current time on Mars is hM hours, mM minutes and sM seconds. After how many seconds will Zhenya clap? Time on the Martian digital clocks is displayed with leading zeroes in all positions. Extra positions are not used.
Input contains six integers, one per line: h, m and s — description of Martian day subdivision, followed by hM, mM and sM — current time.
Output a single integer — number of seconds until the moment when all digits on the clock become identical.
0 ≤ hM < h ≤ 106
0 ≤ mM < m ≤ 106
0 ≤ sM < s ≤ 106
It the first sample Martian days are no different from Earth ones (24 hours of 60 minutes of 60 seconds). Now it is 23 hours 50 minutes exactly (clock displays digits 23:50:00
). After 10 minutes (or 600 seconds) the clock will display zeroes in all positions.
It the second sample Martian days contain 627 hours of 5 minutes of 777 seconds. Now it is 49 hours 3 minutes and 2 seconds (clock displays digits 049:3:002
). After 61 hours 3 minutes and 109 seconds (or 239425 Martian seconds) the clock will display ones in all positions.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Marina Tsvetaeva, Andrej Belyj and Sasha Chernyj are spending the evening playing chess. For each game two of them are playing and the third person is waiting to take the place of the loser. The winner of each game plays next game with white pieces.
After playing n games silver age poets were surprised to find out that white side had been repeatedly winning k times in a row, followed by a black victory every time.
Andrej Belyj likes to play with white pieces, Sasha Chernyj — with black, Marina Tsvetaeva likes either of the colors. Determine the number of games where both players played with the color they like. First game was between Andrej Belyj (played with white) and Sasha Chernyj (played with black). No game was a draw.
Two lines of input contain two integers n and k.
Output a single integer — problem answer.
1 ≤ n ≤ 109
1 ≤ k ≤ 100
4 games were played. White player had been winning one game, and then losing the next one.
In the first game Belyj — Chernyj both play the color they like. Andrej wins, playing with white.
In the second game Belyj — Tsvetaeva both play the color they like. Andrej loses, playing with white.
In the third game Tsvetaeva — Chernyj both play the color they like. Marina wins, playing with white.
In the final game Tsvetaeva — Belyj only Marina plays the color she likes. So the answer is 3 games.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Children theme park has opened a new attraction "Karousel" for n persons. According to safety regulations, when the attraction is running, children must be seated so that the center of mass of all riders coincides with the center of carousel and the distances between them alongside the circumference is equal. For example, for n = 6, 2, 3 or 6 children may ride simultaneously, while for n = 5 — only exactly 5. In other words, attraction is allowed to start if it has k children, where k — is a divisor of n and k ≠ 1.
There are d children waiting in the queue for the carousel. After finishing the ride children leave to other attractions. What is the minimum number of runs to let all children ride the carousel once each?
Two lines of input contain integers n and d.
Output a single integer — answer to the problem. If it is impossible for all children to get a ride, output -1.
1 ≤ (d, n) ≤ 105
In the first sample n = 16 and d = 14 (16 seats on carousel, 14 children in the queue). It is enough to run carousel 3 times: first time for 8 children, second — for 4, third — for 2.
In the first sample n = 15 and d = 7. It is impossible to let all children ride since according to regulations only 3, 5 or 15 are allowed to ride at a time.
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Сегодня к Оле в гости придет N одногруппников, из-за чего она решила приготовить N тортов. В ее распоряжении есть M грамм сахара. Поскольку Оля не хочет никого обидеть, в каждом торте должно быть одинаковое количество сахара. Какое максимальное количество сахара может содержать каждый торт?
Входные данные содержат числа M и N, каждое на новой строке.
Необходимо вывести единственное число — максимальное количество сахара.
1 < N, M < 10000
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Н. Чистякова | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Оксана любит плавать и готовится к заплыву через Амурский залив. Для подготовки она каждый день приходит в бассейн и проводит там несколько часов, переплывая от одного края бассейна до другого. Длина бассейна, где занимается Оксана — N метров. Она успевает пересечь его за M секунд, и ещё K секунд тратит на разворот. Сколько метров Оксана успеет проплыть за L минут?
Первая строка входного файла содержит четыре натуральных числа: N M K L.
Выходной файл должен содержать единственное целое число — количество проплытых метров.
1 ≤ N, M, K, L ≤ 1000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Московская олимпиада для 7-9 кл., 2005 | Ограничение времени: | 3 сек | |
Входной файл: | a.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | a.out |
В книге на одной странице помещается K строк. Таким образом, на 1-й странице печатаются строки с 1-й по K-ю, на второй - с (K + 1)-й по (2 × K)-ю и т.д. Напишите программу, которая по номеру строки в тексте определяет номер страницы, на которой будет напечатана эта строка, и порядковый номер этой строки на странице.
№ | Входной файл (a.in ) |
Выходной файл (a.out ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Жуплев | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Слон — шахматная фигура, которая может двигаться на любое число клеток по диагонали.
Имеется шахматная доска N на N клеток. В клетке с координатами (X; Y) находится слон. Требуется вывести шахматную доску с изображением слона и всех клеток, в которые он может походить.
Клетки чёрного цвета обозначаются символом '#' (ASCII 35), клетки белого цвета обозначаются символом '.' (точка, ASCII 46), клетка со слоном обозначается символом 'X' (ASCII 88), клетка, в которую может походить слон обозначается символом '*' (ASCII 42).
Ось ординат (OY) направлена вертикально вниз. Верхний левый угол доски имеет чёрный цвет и координаты (1; 1).
Входной файл содержит целые числа N X Y.
Выходной файл должен содержать N строчек из N символов каждая — изображение шахматной доски.
2 ≤ N ≤ 100
1 ≤ X, Y ≤ N
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Дано целое неотрицательное число x, требуется вернуть значение k-го бита числа x, то есть k-й разряд двоичного представления числа x. Разряды нумеруются с 0 начиная с младшего. Считается что число содержит неограниченное количество лидирующих нулей.
Первая строка входного файла содержит два числа x, k.
Входной файл должен содержать одно число — значение k-го бита числа x.
0 ≤ x ≤ 2 ⋅ 109
0 ≤ k ≤ 300
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Дано число N и массив из S целых чисел Ai.
За одну операцию можно заменять число N на любое из чисел N + Ai, N − Ai, N × Ai, N / Ai.
Второй операнд может быть любым элементом массива A.
Деление выполняется нацело, с округлением вниз.
Необходимо рассчитать минимальное количество операций, необходимых, чтобы получить из числа N число 0.
Первая строка входных данных содержит целое число N.
Вторая — целое число S.
Третья — S целых чисел, массив A.
Выходные данные должны содержать одно целое число — минимальное количество операций.
0 ≤ N, Ai ≤ 2 * 109
1 ≤ S ≤ 100
100 / 25 = 4 ; 4 - 4 = 0
100 / 11 = 9 ; 9 / 11 = 0
В обоих случаях затрачено 2 операции, что в данном примере является минимально возможным.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Ученые планируют провести важный эксперимент с использованием исследовательского модуля на планете X-2019. В процессе эксперимента будет проведено два измерения: основное и контрольное. Каждое измерение занимает ровно один час и должно начинаться спустя целое число часов после начала работы исследовательского модуля.
Данные эксперимента планируется немедленно передать на орбитальную станцию. Канал связи с орбитальной станцией будет установлен с l-го по r-й час от начала работы исследовательского модуля, включительно. Кроме того, согласно плану эксперимента между измерениями планета должна совершить целое число оборотов вокруг своей оси. Планета X-2019 осуществляет оборот вокруг своей оси за a часов.
Таким образом, если измерения осуществляются на i-м и j-м часу, то должно выполняться неравенство l ≤ i ≤ j ≤ r, а величина (j − i) должна быть кратна~a. Теперь учёным необходимо понять, сколько существует различных способов провести измерения.
Требуется написать программу, которая по заданным границам времени измерений l и r и периоду обращения планеты вокруг своей оси a определяет количество возможных способов провести измерения: количество пар целых чисел i и j, таких что l ≤ i ≤ j ≤ r, и величина (j − i) кратна a.
Входные данные содержат три целых числа, по одному на строке: l, r и a.
Выведите одно целое число: количество способов провести измерения.
1 ≤ l ≤ r ≤ 109, 1 ≤ a ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 30 | 1 ≤ l ≤ r ≤ 100, 1 ≤ a ≤ 100 | полная | |
2 | 30 | 1 ≤ l ≤ r ≤ 105, 1 ≤ a ≤ 105 | 1 | полная |
3 | 40 | 1 ≤ l ≤ r ≤ 109, 1 ≤ a ≤ 109 | 1, 2 | полная |
В первом примере можно провести измерения в следующие пары часов: (1, 3), (1, 5), (2, 4), (3, 5).
Во втором примере продолжительности работы канала связи недостаточно, чтобы провести два измерения.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 256 Мб |
Отряд под командованием лейтенанта О’Денила нашел странный текст, который состоит из n пар целых неотрицательных чисел a, b с одинаковым количеством разрядов. Лейтенант понял, что текст зашифрован и передал его в штаб.
В штабе дешифровщики поняли, что для расшифровки текста необходимо, чтобы пары были отсортированы следующим образом: первые числа a - по возрастанию, а вторые b - по убыванию в случаях, где первые числа соответствующих пар равны т.е. там, где
ai = aj, i ≠ j, i, j = 1,2,3,…,n
Помогите дешифровщикам получить зашифрованную последовательность, написав программу-дешифратор, сортирующие пары чисел указанным способом.
В первой строке подается единственное целое число n - количество пар чисел в последовательности.
В следующих n строках приводится n пар целых чисел a, b - перечень пар чисел для расшифровки.
Выведите n строк, в каждой из которых записана пара целых чисел a, b - искомую последовательность.
2 ≤ n ≤ 103
− 109 ≤ a, b ≤ 109
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | И. Лудов, А. Кленин | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
В городе В случилась катастрофа: неожиданно наступила зима. Чтобы облегчить судьбу жителей В, из города М решено направить N самолётов с тёплой одеждой.
Самолёты имеют различную скорость, так что самолёт номер i затратит на полёт в точности ai минут. Разгрузка любого самолёта в аэропорту В занимает L минут, после чего аэропорт готов к приёму следующего самолёта.
Аэропорт города М большой, и способен оправлять любое необходимое количество самолётов одновременно. Аэропорт города В, напротив, может принимать и разгружать самолёты только по одному.
Самолёты могут взлетать в любом порядке, но не должны обгонять друг друга в воздухе, т. е. если самолёт 1 взлетел раньше самолёта 2, то и приземлиться он должен раньше.
Требуется определить минимальное время в минутах, требуемое на перелёт и разгрузку всех самолётов.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Восьмая всероссийская командная олимпиада школьников по программированию | Ограничение времени: | 2 сек | |
Входной файл: | shelter.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | shelter.out |
Штаб гражданской обороны Тридесятой области решил обновить план спасения на случай ядерной атаки. Известно, что все n селений Тридесятой области находятся вдоль одной прямой дороги. Вдоль дороги также расположены m бомбоубежищ, в которых жители селений могут укрыться на случай ядерной атаки.
Чтобы спасение в случае ядерной тревоги проходило как можно эффективнее, необходимо для каждого селения определить ближайшее к нему бомбоубежище.
Первая строка входного файла содержит число n — количество селений. Вторая строка содержит n различных целых чисел, i-е из этих чисел задает расстояние от начала дороги до i-го селения.
Третья строка входного файла содержит число m — количество бомбоубежищ. Четвертая строка содержит m различных целых чисел, i-е из этих чисел задает расстояние от начала дороги до i-го бомбоубежища.
Выведите в выходной файл n чисел — для каждого селения выведите номер ближайшего к нему бомбоубежища. Бомбоубежища пронумерованы от 1 до m в том порядке, в котором они заданы во входном файле.
1 ≤ n, m ≤ 100000
Все расстояния положительны и не превышают 109. Селение и убежище могут располагаться в одной точке.
№ | Входной файл (shelter.in ) |
Выходной файл (shelter.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 3 сек | |
Входной файл: | linear.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | linear.out |
Группа ученых работает в международной научной лаборатории, которая занимается исследованиями поведения элементарных частиц в установке для экспериментов "Большой линейный коллайдер" (БЛК). Установка БЛК представляет собой прямую, в некоторых точках которой размещаются частицы, которые могут перемещаться вдоль прямой.
В очередном эксперименте в БЛК размещаются n частиц, каждая из которых представляет собой либо отрицательно заряженную частицу — электрон e − , либо положительно заряженную частицу — позитрон e + . В эксперименте i-я частица исходно размещается в точке с координатой xi. После начала эксперимента в результате работы БЛК частицы начнут перемещаться в разные стороны вдоль прямой: e − частицы перемещаются по направлению уменьшения координаты, а e + частицы — по направлению увеличения координаты. Абсолютные величины скоростей всех частиц одинаковы и равны 1.
Если в процессе перемещения частицы e − и e + оказываются в одной точке, то они взаимодействуют и обе исчезают, при этом они не влияют на дальнейшее поведение остальных частиц.
Ученые выбрали m различных моментов времени t1, t2, ..., tm, для каждого из которых их интересует, какое количество частиц находится в БЛК непосредственно после каждого из этих моментов времени. Отсчет времени начинается с момента 0, когда частицы приходят в движение. Частицы, исчезнувшие в результате взаимодействия в момент времени tj, не должны учитываться при подсчете количества частиц для этого момента времени.
Требуется написать программу, которая по описанию исходного расположения и типов частиц, а также заданным моментам времени, определяет для каждого из моментов количество частиц, которое будет находиться в БЛК непосредственно после этого момента.
Первая строка входного файла содержит число n — количество частиц. Последующие n строк описывают частицы следующим образом: каждая строка содержит по два целых числа xi и vi — координату i-й частицы и ее тип соответственно (x1 < x2 < x3 < ... < xn). Частица e − описывается значением vi = − 1, а частица e + описывается значением vi = 1.
Следующая строка содержит целое число m — количество моментов времени, которые выбрали ученые. Последняя строка содержит m целых чисел: t1,t2,...,tm.
Для каждого момента времени во входном файле требуется вывести одно число: количество частиц в БЛК непосредственно после этого момента.
1 ≤ n, m ≤ 200000
− 109 ≤ xi, m ≤ 109
0 ≤ ti ≤ 109
vi равно − 1 или 1
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | |||
---|---|---|---|---|---|---|
n | xi | m | ti | |||
1 | 35 | 1 ≤ n ≤ 100 | − 100 ≤ xi ≤ 100 | m = 1 | 0 ≤ ti ≤ 100 | |
2 | 12 | 1 ≤ n ≤ 100 | − 109 ≤ xi ≤ 109 | m = 1 | 0 ≤ ti ≤ 109 | 1 |
3 | 12 | 1 ≤ n ≤ 200000 | − 109 ≤ xi ≤ 109 | m = 1 | 0 ≤ ti ≤ 109 | 1, 2 |
4 | 41 | 1 ≤ n ≤ 200000 | − 109 ≤ xi ≤ 109 | 1 ≤ m ≤ 200000 | 0 ≤ ti ≤ 109 | 1, 2, 3 |
По запросу сообщается результат окончательной проверки на каждом тесте.
В приведенном примере в начальный момент в БЛК находятся 4 частицы: частица e + в точке − 1, частица e − в точке 0, частица e + в точке 1 и частица e − в точке 5.
В момент времени 0.5 первая частица e + и первая частица e − сталкиваются в точке с координатой − 0.5 и исчезают. В момент времени 1 оставшиеся две частицы находятся в точках с координатами 2 и 4, соответственно. В момент времени 2 они сталкиваются в точке 3 и исчезают. Больше в БЛК частиц нет.
№ | Входной файл (linear.in ) |
Выходной файл (linear.out ) |
---|---|---|
1 |
|
|
Author: | M. Sporyshev | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
Young programmer Vasya came back home from an internship in a large IT company. As a souvenir, he brought back a band with a sequence of M natural numbers embroiled on it.
Vasya does not care much about numbers, so he wants to gift a band to a friend. However, each one of M Vasya's friends has exactly one number he strongly dislikes, and so would not want a band containing that number as a gift. All numbers disliked by Vasya's friends are different.
In order to still make a gift out of the band, Vasya wants to cut it in such a way, that every piece of the band could be given to at least one of his friends (several pieces may go to the same friend).
Your program must determine minimal number of cuts Vasya must perform to be able to give all pieces as gifts.
First line of input file contains integer N — count of numbers on the band.
Second line of input file contains N integers ai — a sequence of numbers on the band.
Third line of input file contains integer M — number of Vasya's friends.
Fourth line of input file contains M integers bi — disliked number of i-th friend. All bi are different.
Output file must contain a single integer — minimal number of band cuts.
1 ≤ N ≤ 105
2 ≤ M ≤ 105
1 ≤ ai, bi ≤ 109
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 512 Мб |
Необходимо написать программу, которая группирует студентов по их группам.
В первой строке входного файла дано число n — количество студентов. Далее следует n строк, в каждой из которых записаны группа и имя студента.
Группа и имя студента разделены символом табуляции.
Выходной файл должен содержать список студентов, сгруппированный по группам. Для каждой группы необходимо вывести имя группы, а затем все имена студентов, которые принадлежат этой группе в алфавитном порядке, каждое в новой строке.
Сами группы следуют также в алфавитном порядке.
1 ≤ n ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | power.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | power.out |
В физико-биологической лаборатории исследуют воздействие излучения на растения при облучении через силовые поля.
Экспериментальная установка содержит квадратную платформу размером 109 × 109, заполненную плодородной почвой. Над платформой установлен источник излучения. Между источником излучения и платформой можно включать n силовых полей.
Генератор силовых полей установлен над точкой (0, 0). При этом i-е силовое поле представляет собой прямоугольник со сторонами, параллельными границам платформы и координатами двух противоположных углов (0, 0) и (xi, yi).
В эксперименте планируется изучать воздействие излучения на растения при облучении через k силовых полей. Из заданных n полей необходимо выбрать k полей для эксперимента. Ученые хотят выбрать силовые поля таким образом, чтобы площадь участка платформы, над которой находятся все k выбранных силовых полей, была максимальна.
Требуется написать программу, которая по заданным целым числам n, k и описанию n силовых полей определяет, какие k силовых полей необходимо выбрать для эксперимента, чтобы площадь участка, покрытого всеми k силовыми полями, была максимальна, и выводит площадь этого участка.
Первая строка входного файла содержит целые числа n и k — общее количество силовых полей и количество силовых полей, которые необходимо выбрать для эксперимента.
Последующие n строк содержат по два целых числа xi, yi — координаты дальнего от начала координат угла прямоугольного участка i-го силового поля.
Требуется вывести одно целое число: максимальную площадь искомого участка.
1 ≤ k ≤ n ≤ 200 000, 1 ≤ xi, yi ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | |
---|---|---|---|---|
n | k | |||
1 | 18 | 1 ≤ n ≤ 20 | 1 ≤ k ≤ n | |
2 | 25 | 1 ≤ n ≤ 300 | 1 ≤ k ≤ n | 1 |
3 | 20 | 1 ≤ n ≤ 3000 | 1 ≤ k ≤ n | 1, 2 |
4 | 17 | 2 ≤ n ≤ 200 000 | k = 2 | |
5 | 20 | 1 ≤ n ≤ 200 000 | 1 ≤ k ≤ n | 1, 2, 3, 4 |
По запросу сообщается результат окончательной проверки на каждом тесте.
На рис. 1 показаны пять силовых полей, заданных во входном файле. Оптимальный способ выбрать из них три поля для эксперимента показан на рис. 2.
Рис 1. Силовые поля в примере описания входных данных.
Рис 2. Оптимальный выбор трех из пяти силовых полей в данном примере.
№ | Входной файл (power.in ) |
Выходной файл (power.out ) |
---|---|---|
1 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Дан массив целых чисел a1, a2, ..., aN и дано M команд типа "найти сумму чисел ai для i от l до r".
Требуется написать программу, выполняющую данные команды.
Входной файл содержит целое число N, за которым следуют N целых чисел ai.
Далее во входном файле содержится целое число M, за которым следуют M пар целых чисел lj rj.
Выходной файл должен содержать M целых чисел — результаты выполнения команд.
1 ≤ N ≤ 1000000
1 ≤ M ≤ 1000000
− 1000 ≤ ai ≤ 1000
1 ≤ lj ≤ rj ≤ N
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Рудник П. А. | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Мальчик Коля дошёл в своей любимой игре до финального босса.
С помощью игровой подсказки Коля узнал механику босса.
Необходимо узнать какой минимальный урон Коле нужно наносить по финальному боссу, чтоб его одолеть за M минут.
Входной файла содержит целые числа H M.
Выходной файл должен содержать единственное целое число — минимальный подходящий урон в минуту.
1 ≤ H ≤ 109; 1 ≤ M ≤ 104
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | forest.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | forest.out |
Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле. В лесу растут X деревьев.
Дмитрий срубает по A деревьев в день, но каждый K-й день он отдыхает и не срубает ни одного дерева. Таким образом, Дмитрий отдыхает в K-й, 2K-й, 3K-й день, и т.д.
Федор срубает по B деревьев в день, но каждый M-й день он отдыхает и не срубает ни одного дерева. Таким образом, Федор отдыхает в M-й, 2M-й, 3M-й день, и т.д.
Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, они срубают A + B деревьев, в дни, когда отдыхает только Федор — A деревьев, а в дни, когда отдыхает только Дмитрий — B деревьев. В дни, когда оба лесоруба отдыхают, ни одно дерево не срубается.
Фермер Николай хочет понять, за сколько дней лесорубы срубят все деревья, и он сможет засеять кукурузное поле.
Требуется написать программу, которая по заданным целым числам A, K, B, M и X определяет, за сколько дней все деревья в лесу будут вырублены.
В приведенном примере лесорубы вырубают 25 деревьев за 7 дней следующим образом:
Внимание! Тест из примера не подходит под ограничения для подзадач 2 и 3, но решение принимается на проверку только в том случае, если оно выводит правильный ответ на тесте из примера. Решение должно выводить правильный ответ на тест даже, если оно рассчитано на решение только каких-либо из подзадач 2 и 3.
1 ≤ X ≤ 1000, 1 ≤ A, B ≤ 1000, 2 ≤ K, M ≤ 1000.
Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
1 ≤ X ≤ 1018; X < K; X < M.
При решении этой подзадачи можно считать, что лесорубы не отдыхают. Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
1 ≤ X ≤ 1018.
Дополнительно к приведенным ограничениям выполняется условие K = M. Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
1 ≤ X ≤ 1018, 1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018.
В этой подзадаче 16 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.
Входной файл содержит пять целых чисел, разделенных пробелами: A, K, B, M и X.
Выходной файл должен содержать одно целое число — искомое количество дней.
1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018, 1 ≤ X ≤ 1018
№ | Входной файл (forest.in ) |
Выходной файл (forest.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 2 сек | |
Входной файл: | diploma.in | Ограничение памяти: | 64 Мб | |
Выходной файл: | diploma.out |
Когда Петя учился в школе, он часто участвовал в олимпиадах по информатике, математике и физике. Так как он был достаточно способным мальчиком и усердно учился, то на многих из этих олимпиад он получал дипломы. К окончанию школы у него накопилось N дипломов, причем, как оказалось, все они имели одинаковые размеры: W — в ширину и H — в высоту.
Сейчас Петя учится в одном из лучших российских университетов и живет в общежитии со своими одногруппниками. Он решил украсить свою комнату, повесив на одну из стен свои дипломы за школьные олимпиады. Так как к бетонной стене прикрепить дипломы достаточно трудно, то он решил купить специальную доску из пробкового дерева, чтобы прикрепить ее к стене, а к ней — дипломы. Для того чтобы эта конструкция выглядела более красиво, Петя хочет, чтобы доска была квадратной и занимала как можно меньше места на стене. Каждый диплом должен быть размещен строго в прямоугольнике размером W на H. Прямоугольники, соответствующие различным дипломам, не должны иметь общих внутренних точек.
Требуется написать программу, которая вычислит минимальный размер стороны доски, которая потребуется Пете для размещения всех своих дипломов.
Решения, правильно работающие только при W, H, N ≤ 1000, будут оцениваться в 40 баллов.
Входной файл содержит три целых числа: W, H, N
В выходной файл необходимо вывести ответ на поставленную задачу.
1 ≤ W, H, N ≤ 109
№ | Входной файл (diploma.in ) |
Выходной файл (diploma.out ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Дан массив из N элементов, нужно научиться находить сумму чисел на отрезке.
Первая строка содержит два целых числа N и K — число чисел в массиве и количество запросов. (1 ≤ N ≤ 100 000), (0 ≤ K ≤ 100 000). Следующие K строк содержат запросы
A i x
— присвоить i-му элементу массива значение x (1 ≤ i ≤ n, 0 ≤ x ≤ 109)Q l r
— найти сумму чисел в массиве на позициях от l до r. (1 ≤ l ≤ r ≤ n)
На каждый запрос вида Q l r
нужно вывести единственное число — сумму на отрезке.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Иван Кобец | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Сегодня в ДВФУ состоится традиционное вручение дипломов выпускникам института математики и компьютерных наук. Каждый год это особенное событие и большой праздник, как для выпускников, так и для сотрудников факультета, своеобразное подведение итогов совместного многолетнего труда.
В этом году из института выпускается n студентов. Еще давным-давно, при поступлении, каждому студенты был выдан порядковый номер, который зависел от их места в конкурсном списке по результатам вступительных испытаний. Те, кто были выше в конкурсном списке, имели более низкий порядковый номер. То есть, если человек сдал вступительные лучше всех, то имел 1-й порядковый номер, кто сдал чуть хуже этого человека, но лучше всех остальных — 2-й, и так далее. Хоть это и было очень давно, эти номера закрепились за ними до конца их учебных дней.
В качестве введения новшества, институт решил распечатать конверты с этими порядковыми номерами и запаковать дипломы выпускников в принадлежащие их номеру конверты. Они сложили все конверты в стеклянный "бокс", расположив их слева направо по возрастанию. Бокс имел два отверстия для того, чтобы доставать дипломы: слева и справа.
Во время начала церемонии декану вручили список, по которому он должен выдавать дипломы. i-й по счету диплом должен быть выдан студенту под порядковым номером ai. Так как укладывали все дипломы до получения этого списка, расположение их не такое, как должно быть. Они решили действовать по следующей тактике: вытаскивать дипломы по-очереди до того момента, пока не достанут нужный, и складывать все выложенные дипломы в том же порядке, как они и лежали. Т.е. если нужно достать диплом под номером 4, то сначала необходимо выложить дипломы 6 и 5 (или 1, 2 и 3, так как бокс имеет отверстия с двух сторон), а затем сложить их обратно в том же порядке. После того, как диплом выдан, он пропадает из бокса. На каждую операцию взятия и складывания дипломом затрачивается одно действие. Такая тактика, кстати, выбрана не просто так, они хотят ускорить выдачу дипломов и при этом не запутаться.
Вам дан список порядка выдачи дипломов. Определите, за какое наименьшее количество действий возможно выдать все дипломы, следуя данной тактике.
В первой строке входных данных записано натуральное число n — количество студентов.
Во второй строке записано n натуральных чисел ai — порядок выдачи дипломов студентам по их порядковым номерам. Гарантируется, что каждое ai уникальное.
Выведите минимально возможное количество действий, за которое можно выдать все дипломы, следуя данной тактике.
1 ≤ n ≤ 2 ⋅ 105
1 ≤ ai ≤ n
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Входной файл: | rmq.in | Ограничение времени: | 2 сек | |
Выходной файл: | rmq.out | Ограничение памяти: | 256 Мб |
Первая строка содержит два целых числа n и q (1 ≤ n, q ≤ 105) — длина массива и число запросов соответственно.
Вторая строка содержит n целых чисел a1, …, an (|ai| ≤ 105), задающих соответствующие значения массива.
Следующие q строк содержат запросы.
В зависимости от типа запрос может иметь вид либо «max l r», либо «add l r v».
1 ≤ l ≤ r ≤ n, |v| ≤ 105.
Для каждого запроса вида «max l r» требуется в отдельной строке выдать значение соответствующего максимума.
№ | Входной файл (rmq.in ) |
Выходной файл (rmq.out ) |
---|---|---|
1 |
|
|
Входной файл: | sum.in | Ограничение времени: | 2 сек | |
Выходной файл: | sum.out | Ограничение памяти: | 256 Мб |
Первая строка входного файла содержит два целых числа N и K — число чисел в массиве и количество запросов. (1 ≤ N ≤ 100 000), (0 ≤ K ≤ 100 000). Следующие K строк содержат запросы:
A l r x— присвоить элементам массива с позициями от l до r значение x (1 ≤ l ≤ r ≤ N, 0 ≤ x ≤ 109)
Q l r— найти сумму чисел в массиве на позициях от l до r. (1 ≤ l ≤ r ≤ N)
Изначально массив заполнен нулями.
На каждый запрос вида
Q l rнужно вывести единственное число — сумму на отрезке.
№ | Входной файл (sum.in ) |
Выходной файл (sum.out ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 2 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Друзья готовятся встретить национальную команду, возвращающуюся с международной олимпиады по информатике. Для этого они подготовили множество красочных плакатов. Осталось только продумать детали поздравления.
Для того, чтобы приветствовать команду, n друзей встанут в круг. Пронумеруем их от 1 до n в порядке их расположения по кругу. Таким образом, для всех i от 1 до n − 1 друзья с номерами i и i + 1 стоят рядом, также рядом стоят друзья с номерами n и 1. У каждого из друзей есть плакат. Каждый плакат характеризуется своей красочностью — целым неотрицательным числом. Плакат у друга с номером i имеет красочность ai.
Когда поздравление начнётся, некоторые из друзей поднимут свои плакаты и будут показывать их команде. Для того, чтобы члены команды не растерялись и смогли рассмотреть все плакаты, не должно быть четырёх или более стоящих подряд друзей с поднятым плакатом.
Друзья планируют изменять плакаты в процессе встречи. Всего будет внесено q изменений в плакаты. После i-го из них плакат друга с номером pi будет иметь красочность vi. После каждого из изменений друзья хотят определить, какую максимальную суммарную красочность могут иметь поднятые плакаты, если нельзя нарушать установленное ограничение.
Требуется написать программу, которая по заданной начальной красочности плакатов и последовательности их изменений определяет в начале, а также после каждого изменения, какой максимальной суммарной красочности поднятых плакатов можно добиться, не нарушая условие, что поднято не более трёх плакатов подряд.
Первая строка ввода содержит целое число n (4 ≤ n ≤ 40 000) — количество друзей.
Вторая строка содержит n целых чисел ai (0 ≤ ai ≤ 109) — исходные значения красочности плакатов у друзей.
Третья строка содержит одно целое число q (0 ≤ q ≤ 40 000) — количество изменений плакатов, которые вносили друзья.
Каждая из следующих q строк содержит два целых числа pi и vi (1 ≤ pi ≤ n; 0 ≤ vi ≤ 109) — номер друга, плакат которого изменился, и новая красочность этого плаката.
Выведите q + 1 число. Перед первым изменением, а также после каждого изменения плакатов выведите одно целое число — максимальное суммарное значение красочности поднятых плакатов, если нельзя поднимать больше трёх плакатов подряд.
4 ≤ n ≤ 40 000
0 ≤ ai ≤ 109
0 ≤ q ≤ 40 000
1 ≤ pi ≤ n; 0 ≤ vi ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 11 | n ≤ 10, q = 0 | первая ошибка | |
2 | 12 | n ≤ 10, q ≤ 10 | 1 | первая ошибка |
3 | 13 | n ≤ 1 000, q ≤ 1 000 | 1,2 | первая ошибка |
4 | 17 | n ≤ 40 000, q = 0 | 1 | первая ошибка |
5 | 47 | n ≤ 40 000, q ≤ 40 000 | 1,2,3,4 | первая ошибка |
Перед первым изменением плакаты следует поднять друзьям с номерами 2, 4, 5, 6. Суммарная красочность поднятых плакатов будет равняться 17.
После первого изменения плакат друга с номером 6 имеет красочность 0. Теперь плакаты следует поднять друзьям с номерами 1, 3, 4, 5. Суммарная красочность будет равняться 13.
После второго изменения плакат друга с номером 2 имеет красочность 5. Плакаты следует поднять друзьям с номерами 1, 2, 4, 5. Суммарная красочность будет равняться 15.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | А. Кленин, И. Туфанов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Оргкомитет сборов по программированию знает, что важно организовать правильное питание участников. Еда должна быть вкусной, а блюда — разнообразными. Поэтому разработку меню доверили повару тёте Вале.
Тётя Валя умеет готовить несколько разных блюд. Она использует для их обозначения маленькие английские буквы. Всего в течение сборов будет n приёмов пищи. Тётя Валя составила черновик меню — строку s, состоящую из n маленьких английских букв. Символ si обозначает блюдо, которое она запланировала для i-го приёма пищи.
Черновик меню полностью сбалансирован по всем питательным компонентам, но тётя Валя не особо заботилась о разнообразии.
Помогите тёте Вале сделать меню наиболее разнообразным. Для этого нужно переставить блюда в меню таким образом, чтобы минимальное расстояние между одинаковыми блюдами было как можно больше.
Если существует несколько решений, выведите любое из них.
Входной файл содержит строку s, состоящую из маленьких букв английского алфавита — черновик меню.
Выходной файл должен содержать единственную строку — окончательный вариант меню.
1 ≤ n ≤ 100000;
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | А. Жуплев | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Прожив 1000 лет, Гассан Абдуррахман ибн Хоттаб узнал, что из интернета можно скачивать файлы. Решив помочь другим пользователям, он сотворил собственный сервер с файлами. Поскольку сервер Хоттаба волшебный, любой файл скачивается с него мгновенно. Однако, после скачивания файла размером S мегабайт скачавший его компьютер отключается от сервера на S секунд.
В распоряжении шушанчиков имеется один компьютер, подключённый к интернету. Им требуется скачать N файлов, i-й файл размером si мегабайт. Шушанчики просят Вас рассчитать минимальное время, за которое можно скачать эти файлы с сервера Хоттабыча.
Во входном файле содержится число N — количество файлов, за которым следуют N чисел si — размеры файлов в мегабайтах.
В выходном файле должно содержаться единственное число — минимальное время скачивания всех файлов в секундах.
1 ≤ N ≤ 1000
1 ≤ si ≤ 1000
Все числа во входном файле целые
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | text.in | Ограничение времени: | 2 сек | |
Выходной файл: | text.out | Ограничение памяти: | 256 Мб |
Давным-давно, в далекой-далекой галактике учились в одной школе два закадычных друга — Вася и Петя. Они были верными товарищами, не раз выручавшими друг друга в трудную минуту из самых безвыходных ситуаций. Однако речь сейчас пойдет не об этом, а о редчайшем случае — ссоре между двумя героями нашего повествования.
В конце седьмого класса Вася увлекся программированием и написал свой текстовый редактор. Естественно, Петя тут же захотел его испытать. Несложно представить насколько велико было его разочарование, когда обнаружилось, что Васина программа корректно работает только при использовании экрана с тем же разрешением, как и у него дома. Вася оправдывал это тем, что оптимальный вывод текста на экран — штука сложная, поэтому универсальным образом сделать это невозможно. Петя же заявил, что хоть программист он и никудышный, но легко решит эту задачу.
К сожалению, программирует Петя действительно из рук вон плохо, поэтому он просит вас помочь ему в написании решения.
На вход дан текст. Назовем словом последовательность символов, ограниченную пробелами, началом или концом текста. Обратите внимание, что в данной задаче знаки препинания считаются частью слова. Требуется разбить текст на строки так, чтобы длина каждой из них была не более k символов, при этом их общее количество было минимальным. Порядок слов и сами слова менять запрещено.
Первая строка входного файла содержит натуральное число k — максимально допустимая длина строки.
Вторая строка входного файла содержит текст, который необходимо вывести. Текст состоит из латинских букв, цифр, пробелов и символов "," (запятая), "." (точка), "!" (восклицательный знак) и "?" (вопросительный знак).
Выведите заданный во входном файле текст так, чтобы длина каждой строки была не более k символов, а количество строк было минимально возможным. Гарантируется, что задача имеет решение. В случае если решение не единственно, выведите любое из них. Слова в выходном файле должны быть отделены друг от друга пробелами и/или переводами строк.
1 ≤ k ≤ 100. Размер входного файла не превышает 50000 байтов.
№ | Входной файл (text.in ) |
Выходной файл (text.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Петя очень любит арифметические прогрессии. Однажды он написал на бумаге числовую последовательность, но, к сожалению, эта последовательность не оказалась арифметической прогрессией.
Чтобы исправить эту ситуацию, Петя решил вычеркнуть некоторые числа, чтобы полученная в результате вычёркивания последовательность оказалась арифметической прогрессией. При этом Петя хочет вычеркнуть как можно меньше чисел.
Напишите программу, принимающую на вход последовательность чисел и вычисляющую, какое наименьшее количество чисел нужно из неё вычеркнуть, чтобы оставшаяся последовательность оказалась арифметической прогрессией.
Входной файл содержит целое число N — количество чисел, за которым следуют N целых чисел ai.
Выходной файл должен содержать целое число M — количество чисел, которые останутся после вычёркивания (при этом количество вычеркнутых чисел должно быть минимальным).
Далее должны следовать M целых чисел — номера чисел, которые останутся после вычёркивания, перечисленные в порядке возрастания.
Если решений несколько, выведите любое из них.
1 ≤ N ≤ 100
1 ≤ ai ≤ 106
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Кленин А. С. | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
Две пчелы собирают пыльцу с N цветков, расположенных в ряд. Цветок номер i содержит ai микрограмм пыльцы.
Пчёлы договорились, что первая пчела будет собирать пыльцу с цветков на участке от L до M включительно, а вторая — от M + 1 до R включительно (L ≤ M < R). Чтобы ни одной из пчёл не было обидно, сумма запасов пыльцы на первом и втором участках пчёл должны совпадать.
Требуется написать программу, которая найдёт подходящие участки с наибольшим возможным количеством пыльцы.
Входные данные содержат целое число N, за которым следует N чисел ai.
Выходные данные должны содержать целые числа L M R — границы участков. Если оптимальных решений несколько, выведите решение с наименьшим значением L. Если решения не существует, выведите единственное число − 1.
2 ≤ N ≤ 10000
1 ≤ ai ≤ 105
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
Две подруги, Нина и Марина, живут квартирах n и m в одном подъезде самого длинного дома в мире. Каким может быть наибольший номер этого подъезда? Количество квартир в каждом подъезде одинаково.
Две строки входных данных содержит два натуральных числа n и m.
Выведите одно натуральное число — ответ на вопрос задачи.
1 ≤ m < n ≤ 109
В примере дано n = 52 и m = 41. Эти квартиры могут находиться в первом подъезде (если в одном подъезде квартир не меньше, чем 52).
Эти квартиры могут находиться во втором подъезде (если в одном подъезде квартир не меньше, чем 26 и не больше, чем 40).
Эти квартиры могут находиться в третьем подъезде (если в одном подъезде квартир не меньше, чем 18 и не больше, чем 20).
Эти квартиры могут находиться в четвертом подъезде (если в одном подъезде ровно 13 квартир).
Эти квартиры не могут находиться в подъезде с номером большим, чем 4. Ответ на вопрос задачи — 4.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Author: | A. Klenin | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
Young physicist Masha studies lasers. Masha wants to create a simplest 2-dimensional waveguide, consisting of two very long parallel mirrors, one coinciding with the Ox axis, and another located h millimeters above the first.
Masha's laser is located at coordinates (0, y) and emits light in direction (1, − 1). Masha wants to hit a target located at coordinates (xt, yt) by choosing a good value for h. All coordinates are in millimeters.
Note that laser itself must fit into the waveguide, so h ≥ y. Both mirrors and laser are perfect, so light is always fully reflected at 45 degrees angle.
Input file contains three integers y xt yt — coordinates of laser and target.
Output file must contain a single integer — value of h. If there are several solutions, output the smallest one. If there are no solutions, output − 1.
1 ≤ y, xt, yt ≤ 109
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Никита Иоффе (Жюри XXI командной олимпиады школьников Санкт-Петербурга по информатике и программированию) | Ограничение времени: | 2 сек | |
Входной файл: | equation.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | equation.out |
Маленький Вася очень любит уравнения. Однажды ему на глаза попалось уравнение x + y + xy = n. Вася захотел узнать количество пар целых неотрицательных чисел x и y, которые являются решениями этого уравнения.
Так как Вася еще маленький, то он попросил вас посчитать это количество.
В единственной строке входного файла дано число n (0 ≤ n ≤ 109).
В единственную строку выходного файла выведите ответ на задачу.
№ | Входной файл (equation.in ) |
Выходной файл (equation.out ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Гусаров В.Е. | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 512 Мб | |
Выходной файл: | output.txt |
Игорь изучал арифметическую прогрессию и чтобы лучше запомнить как она выглядит, распечатал на листочках бумаги числа и разложил из них на полу арифметическую прогрессию. Поднялся ветер и все листы бумаги улетели в разные стороны. Когда Игорь собрал их, оказалось, что не хватает одного листа и выразить из них арифметическую прогрессию не получается. Необходимо найти число, которые было написано на пропавшем листе.
Гарантируется, что пропавшее целое число не было первым или последним в арифметической прогрессии Игоря.
В первой строке входные данные содержат число N - количество листков с числами, которое собрал Игорь.
В следующей строке содержатся N чисел ai разделенные пробелами
Выходные данные должны содержать одно целое число.
2 ≤ N ≤ 106
0 ≤ ai ≤ 107
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 256 Mb | |
Output file: | Standard output |
There is a set of N rational fractions, each is represented by corresponding numerator Ai and denominator Bi.
You must write a program that outputs:
Input contains integer N, followed by N pairs of integers (Ai, Bi).
Output must contain a single integer — answer to the problem.
1 ≤ N ≤ 200, 1 ≤ (Ai, Bi) < 232
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход |
С целью поиска закономерностей иногда полезно сгенерировать длинную последовательность по определенным правилам. Известно, например, что последовательность 0, 0 + 1, 0 + 1 + 3, 0 + 1 + 3 + 5, …, 0 + 1 + 3 + … + (2n − 1), …, составленная из сумм нескольких первых нечетных натуральных чисел, состоит из квадратов целых чисел: 0, 1, 4, 9, …, n2,….
Обобщим эту последовательность следующим образом: будем использовать вместо начального значения не ноль, а число k. Получим последовательность: k, k + 1, k + 1 + 3, k + 1 + 3 + 5, …, k + 1 + 3 + … + (2n − 1), …. В отличие от случая k = 0, в этой последовательности могут встречаться не только полные квадраты. Необходимо найти минимальное целое неотрицательное число, квадрат которого встречается в этой последовательности.
Требуется написать программу, которая по заданному целому числу k определяет, квадрат какого минимального неотрицательного целого числа встречается в описанной последовательности, либо выясняет, что в ней вообще не встречается полных квадратов.
В единственной строке содержится целое число k — начальное число в последовательности. Обратите внимание, что для считывания и хранения такого большого числа необходимо использовать 64-битный тип данных.
Выведите минимальное неотрицательное целое число, квадрат которого встречается в описанной последовательности. Если в последовательности не встречается квадратов целых чисел, выведите none.
− 1012 ≤ k ≤ 1012
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 7 | 1 ≤ k ≤ 1000 | полная | |
2 | 10 | 1 ≤ k ≤ 105 | 1 | первая ошибка |
3 | 27 | 1 ≤ k ≤ 1012 | 1, 2 | первая ошибка |
4 | 7 | − 1000 ≤ k ≤ 1000 | 1 | полная |
5 | 10 | − 105 ≤ k ≤ 105 | 1, 2, 4 | первая ошибка |
6 | 39 | − 1012 ≤ k ≤ 1012 | 1, 2, 3, 4, 5 | первая ошибка |
В первом примере каждое число последовательности является полным квадратом. Минимальный из них — 0, 02 = 0.
Во втором примере последовательность начинается так: − 5, − 4, − 1, 4, 11, 20,…. Минимальное неотрицательное целое число, квадрат которого встречается в последовательности — 2, 22 = 4.
В третьем примере последовательность начинается так: 2, 3, 6, 11, 18, …. В ней нет квадратов целых чисел.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход |
В магазине "Программист-спортсмен" большая распродажа! В преддверии поступления товаров нового сезона, нужно срочно освободить полки и витрины, продавая прошлогодние коллекции по бросовым ценам. К сожалению, установить произвольную цену на товар нельзя, в соответствии с антимонопольным законом на распродажу распространяются следующие условия:
1) На товар можно установить любую скидку (от 1 до 99 процентов) по сравнению с ценой товара в предыдущий день.
2) И скидка, и новая стоимость товара должны являться натуральными числами.
Например, если товар стоит 20 рублей, на него можно установить скидку 25% и на следующий день этот товар будет продаваться по 15 рублей. А вот скидку в 30% установить нельзя — новая цена будет выражаться дробным числом рублей.
Молодой программист Тимофей каждый день после работы заходит в магазин и скупает все товары, которые сегодня стоят 1 рубль. Как скоро хозяину магазина удастся снизить стоимость товара с n рублей до 1 рубля?
Единственная строка входных данных содержит натуральное число n — начальная стоимость товара в рублях. Гарантируется, что это значение таково, что существует последовательность корректных скидок, снижающих стоимость товара до 1 рубля.
Выведите одно натуральное число — наименьшее количество дней, необходимых для максимального снижения стоимости товара.
2 ≤ n ≤ 1018
В примере дана начальная стоимость товара 125 рублей. В первый день на него устанавливается скидка 96% и товар продается по цене 5 рублей. Во второй день скидка составит 80% и вечером товар будет куплен Тимофеем за 1 рубль.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Author: | Антон Карабанов | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Find the smallest positive integer which is divisible by n and starts from digits 2021 in decimal notation.
Input contains a single integer n — the divisor of the required number.
Output a single integer — the answer.
1 ≤ n ≤ 1012
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
Author: | A. Baranov | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
Your program must calculate total number of such pairs of integers (p, n) that p ≥ 1, n > 1 и A ≤ pn ≤ B.
Input file contains two integers A and B.
Output file must contain a single integer — number of pairs.
2 ≤ A ≤ B < 263
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Г. Гренкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Однажды Марфа Геннадьевна пришла в столовую. В меню было N блюд. Блюдо с номером i стоит ci рублей. Для каждого блюда известен также коэффициент сытости блюда — ai.
Марфа Геннадьевна знает, что для того, чтобы наесться, нужно, чтобы сумма коэффициентов сытости съеденных блюд была не меньше A.
Какие блюда нужно взять в столовой, чтобы наесться и потратить как можно меньше денег? Обратите внимание, что Марфа Геннадьевна может взять более одной порции блюда (любое целое неотрицательное число порций).
Входной файл содержит целые числа N A.
Далее следуют N пар целых чисел ci ai.
Выходной файл должен содержать минимальную сумму денег, которую нужно потратить, чтобы наесться.
1 ≤ N ≤ 100
1 ≤ A ≤ 1000
1 ≤ ci ≤ 500
1 ≤ ai ≤ 100
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Author: | A. Klenin | Time limit: | 3 sec | |
Input file: | input.txt | Memory limit: | 256 Mb | |
Output file: | output.txt |
The main hall of the Nearsea Institute of Unspecified Underwater Studies has a shape of a long corridor. Along the corridor, there are N aquariums exhibiting various sea creatures. Aquariums are located at distances x1, …, xN from the hall entrance (xi < xi + 1).
The institute has recently got a new director, who decided that the aquarium maintenance is too costly, and issued an order to remove M (0 ≤ M ≤ N − 2) aquariums.
To minimize the disruption to the looks of the hall, it was decided that:
Your program must select aquariums for removal in such a way that the above conditions are satisfied.
Input file contains integers N M followed by N integers xi.
Output file should contain a single integer — the smallest possible maximum distance.
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | Н. Ведерников, И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Илон Маск закончил создание транспорта будущего — Hyperloop. Hyperloop — расположенный на опорах надземный трубопровод, внутри которого с высокой скоростью в одном направлении перемещаются одиночные транспортные капсулы. Пассажирский вариант предполагает n рядов по одному сиденью. Однако из-за конструктивных недостатков люди не могут сидеть на двух подряд идущих рядах. Поэтому, когда продаётся билет с номером места ai из продажи исчезает сам этот билет, и два соседних с ним билета.
Слон Пахом подрабатывает контролёром на Hyperloop. На рейс уже распродано k билетов с номерами ai. Так как все хотят прокатиться на Hyperloop, вы точно знаете, что все билеты будут распроданы. После продажи k билетов вам стало интересно, сколько существует различных способов продажи оставшихся билетов так, чтобы не нарушить правила продажи билетов. Способы считаются различными, если в одном из них существует хотя бы один билет, не проданный в другом.
Первая строка входного файла содержит два целых числа N и K. Далее следует K строк содержащих по одному числу ai. Гарантируется, что для всех пар i и j выполняется условие |ai − aj| ≥ 2 .
Выходной файл должен содержать одно — количество вариантов рассадки пассажиров по модулю 1000000007.
1 ≤ N ≤ 106; 1 ≤ K ≤ 105; 1 ≤ ai ≤ N
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | ||
---|---|---|---|---|
N | K | |||
1 | 15 | 1 ≤ N ≤ 105, N - чётное | K = N / 2 | |
2 | 35 | 1 ≤ N ≤ 20 | 1 ≤ K ≤ 10 | |
3 | 50 | 1 ≤ N ≤ 106 | 1 ≤ K ≤ 105 |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Антон Карабанов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 64 Мб | |
Выходной файл: | Стандартный выход |
Король и королева пригласили на пир n рыцарей. Пиршество затянулось допоздна и хозяева изрядно устали. К сожалению, гости не расходятся, пока не услышат от короля с королевой хвалебную речь. У короля есть любимое число k, поэтому он может произнести речь и восславить одного или сразу k рыцарей (естественно, при этом за столом должно сидеть не менее k рыцарей). Сразу после этого один или k рыцарей покидают замок. У королевы тоже есть своё любимое число q, поэтому она может произнести речь и восславить одного или сразу q рыцарей. Сразу после этого один или q рыцарей покидают замок.
Король с королевой решили устроить игру — тот, кто выставит из замка последнего рыцаря — выигрывает и получает право выбрать для культурной программы следующего праздника свою любимую труппу бродячих артистов. Кто выигрывает при безошибочной игре обоих игроков — король, делающий первый ход, или королева, делающая второй ход? Естественно, игроки ходят по очереди.
Единственная строка входного файла содержит три натуральных числа, записанных через пробел: n, k и q — количество рыцарей на королевском пиру, а также любимые числа короля и королевы.
Выведите титул победителя — "King" или "Queen" (без кавычек).
1 ≤ k, q, n ≤ 105
Баллы за каждый тест начисляются независимо.
Решения, верно работающие при k = q, получат не менее 20 баллов.
На пиру 13 рыцарей. Любимое число короля — 6, королевы — 4. Первым ходом король хвалит 6 рыцарей. После любых ответных ходов королевы ему нужно хвалить по одному рыцарю. Если же король первым ходом восславит одного рыцаря, то он проиграет.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия по информатике | Ограничение времени: | 1 сек | |
Входной файл: | tiling.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | tiling.out |
В процессе ремонта в Лаборатории Информационных Технологий строителям необходимо заменить поврежденные напольные плитки в коридоре лаборатории, который имеет размер 2 × n метров. В распоряжении строителей есть неограниченный запас плиток двух размеров: 1 × 2 метра и 1 × 1 метр. При этом плитки размером 1 × 2 метра перед укладкой разрешается поворачивать на 90 градусов и размещать как вдоль, так и поперек коридора.
Строители уже начали ремонт и уложили в некоторых местах пола коридора k плиток размером 1 × 1. Для завершения ремонта прорабу необходимо подготовить план дальнейших работ. Для этого ему надо решить, каким образом уложить плитки на места, где они еще не уложены. Это можно сделать различными способами и прораб хочет перебрать все варианты и выбрать самый удачный. Перед тем как это сделать, прораб хочет знать, какое количество вариантов ему придется рассмотреть. Это число требуется найти по модулю 109 + 7.
Требуется написать программу, которая по заданной длине коридора n и расположению плиток, которые уже уложены, определяет количество способов укладки плиток на оставшиеся места. Ответ необходимо вывести по модулю 109 + 7.
Рисунок 1. Все способы укладки плиток в первом примере
Рисунок 2. Все способы укладки плиток в третьем примере. Уже уложенная плитка отмечена серым цветом.
1 ≤ n ≤ 8, k = 0
Баллы за подзадачу начисляются только в случае, если все тесты подзадачи пройдены.
1 ≤ n ≤ 1000, k = 0
Баллы за подзадачу начисляются только в случае, если все тесты подзадачи пройдены.
1 ≤ n ≤ 100000, k = 0
Баллы за подзадачу начисляются только в случае, если все тесты подзадачи пройдены.
1 ≤ n ≤ 100000, 1 ≤ k ≤ 2n
В этой подзадаче 20 тестов, каждый тест оценивается в 2 балла. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.
Первая строка входного файла содержит два целых числа: n — длину коридора и k — количество уже уложенных единичных плиток.
Последующие k строк содержат по два целых числа xi и yi, которые задают позиции уже уложенных единичных плиток, i-я плитка уложена на xi-м метре коридора в yi-м ряду.
Выходной файл должен содержать одно целое число — количество способов укладки плиток в коридоре, взятое по модулю 109 + 7.
1 ≤ n ≤ 100000; 0 ≤ k ≤ 2n; 1 ≤ xi ≤ n; 1 ≤ yi ≤ 2.
№ | Входной файл (tiling.in ) |
Выходной файл (tiling.out ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
Дан неориентированный граф. Проверьте, является ли он деревом.
В первой строке входного файла заданы через пробел два целых числа n и m — количество вершин и рёбер в графе, соответственно. В следующих m строках заданы рёбра; i-я из этих строк содержит два целых числа ui и vi через пробел — номера концов i-го ребра. Граф не содержит петель и кратных рёбер.
В первой строке выходного файла выведите YES
, если граф является
деревом, и NO
в противном случае.
1 ≤ n ≤ 105
0 ≤ m ≤ 105
1 ≤ ui, vi ≤ n
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 64 Мб |
Дан квадратный лабиринт, размером N × N, координаты точки входа и точки выхода. Определите минимальное расстояние от входа до выхода.
В выходном файле должно содержаться единственное число — минимальное расстояние. Лабиринт проходим.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | И. Олейников | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Отдел инновационных технологий фирмы "Division Computers" решил, что повысить производительность в написании программ можно, если использовать модульное программирование, т.е. когда когда каждый программист пишет свою часть отдельно.
Когда все программисты сдали в отдел свою работу, выяснилось, что некоторым модулям для правильного функционирования требуются другие модули, при этом если i-тому модулю нужен j-тый, то и наоборот j-тому модулю нужен i-тый. Вам, как одному из программистов отдела, поручено написать программу, которая по сведениям о связях между модулями определила бы, сколько минимальных программ можно из них собрать. Минимальной считается программа, которую нельзя разделить на более мелкие части.
Входной файл содержит числа N и M — соответственно число модулей и связей между ними, за которыми следуют M пар чисел ai aj, означающие, что i-тый и j-тый модули не могут функционировать друг без друга.
Выходной файл должен содержать число получившихся после сборки программ.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | И. Туфанов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Школьник Петя собрал собственный цветной дисплей с разрешением 2 пикселя по вертикали и N пикселей по горизонтали. Каждый пиксель определяется координатами (a, b), где a — номер строки от 1 до 2, а b — номер столбца от 1 до N.
На дисплее с таким разрешением уже можно играть и Петя разрабатывает одну из игр — "Бег по коридору". По правилам игры, каждый пиксель может быть либо свободен, либо занят препятствием, либо занят игроком, либо занят эликсиром. Игрок может перемещаться в один из смежных пикселей, не занятых препятствием (смежными называются пиксели, соседствующие либо в строке, либо в столбце).
В начале у игрока нулевой уровень усталости. Каждое перемещение добавляет к текущему уровню усталости единицу. Как только игрок перемещается на пиксель, занятый эликсиром, он выпивает эликсир, и уровень усталости уменьшается на единицу. Таким образом, перемещение на пиксель с эликсиром не увеличивает уровня усталости. Когда игрок покидает клетку, на которой был эликсир, она становится свободной.
Изначально игрок находится в пикселе с координатами (1, 1). Цель игры — добраться до N-ого столбца, минимизировав конечный уровень усталости.
Вам необходимо написать программу, которая по заданному плану коридора определит минимальный уровень усталости, с которым можно пройти игру.
В первой строке входного файла содержится число N — горизонтальное разрешение дисплея. Далее следует описание игрового поля — пара строк длиной N каждая. Символ "." (точка) соответствует свободному пикселю, символ "#" (решетка) — занятому препятствием, символ "X" (прописная латинская X) — пикселю с эликсиром.
Гарантируется, что первый символ первой строки равен ".", кроме того, последний символ хотя бы одной из двух строк не равен "#".
Гарантируется, что можно добраться до N-ого столбца.
В выходной файл выведите единственное число — минимальный уровень усталости, которого можно достичь, пройдя игру.
2 ≤ N ≤ 100
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 256 Мб |
В заданном корневом дереве найдите вершины, максимально удалённые от корня. Расстоянием между вершинами считается количество рёбер в пути.
В первой строке задано n "--- количество вершин в дереве. В следующих n − 1 строках заданы вершины, являющиеся предками вершин 2, 3, …, n. Вершина 1 является корнем дерева.
В первой строке выведите максимальное расстояние от корня до остальных вершин дерева.
Во второй строке выведите, сколько вершин дерева находятся от корня на таком расстоянии.
В третьей строке выведите номера этих вершин через пробел в порядке возрастания.
1 ≤ n ≤ 105
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | StdAlg | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | А. Лепёха | Time limit: | 1 sec | |
Input file: | Standard input | Memory limit: | 512 Mb | |
Output file: | Standard output |
Sasha graduated from high school and decided to enroll as a programmer at a local university. One of the first subjects in his course was «Geometry and Topology of Numbers». At the very first lecture, the whole group was asked to derive and prove a theorem that would make it possible to determine by three points on the plane whether the triangle formed by them is a right-angled.
Sasha was able to come up with several theorems, but for some reason his theorems give different answers. Write a program that, given the coordinates of three points, can correctly determine whether these points form a right-angled triangle.
First line of input contains integers x1 and y1, second line contains integers x2 and y2, third line contains integers x3 and y3 — coordinates of three points. All points are pairwise different.
Output must contain YES
, if given points form right triangle or NO
otherwise.
− 104 ≤ xi, yi ≤ 104
No. | Standard input | Standard output |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Прямоугольник со сторонами, параллельными осям координат, задан координатами противоположных вершин (x1, y1) и (x2, y2).
Будем считать, что точка (x, y) внутри прямоугольника находится в углу, если расстояние от точки до одной из вершин прямоугольника строго меньше, чем до центра прямоугольника.
Напишите программу, которая по данному прямоугольнику и точке определяет, находится ли точка в углу.
Входной файл содержит целые числа x1 y1 x2 y2 x y — координаты вершин прямоугольника и точки.
Выходной файл должен содержать единственную строку CORNER, если точка находится в углу, или CENTER в противном случае.
− 104 ≤ x1,y1,x2,y2 ≤ 104
min(x1, x2) ≤ x ≤ max(x1, x2)
min(y1, y2) ≤ y ≤ max(y1, y2)
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
"Дети, нарисуйте в тетрадях квадрат" — сказала учительница. Вася поставил на листе бумаги четыре точки, соединил их с помощью линейки. Получился квадрат... ну, или во всяком случае какой-то четырёхугольник.
Васин сосед Петя согласился помочь исправить рисунок. За время, пока учительница подойдёт для проверки Васиной работы, Петя успеет стереть и перерисовать только одну вершину четырёхугольника.
Требуется написать программу, которая найдёт нужную вершину и её новые координаты или определит, что это невозможно.
− 1000 ≤ x, y ≤ 1000
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | А. Кленин | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt |
Прямоугольник со сторонами, параллельными осям координат, задан координатами двух противоположных вершин (x1, y1) и (x2, y2). Отрезок задан координатами вершин (u1, v1) и (u2, v2). Требуется вычислить длину части отрезка, лежащей внутри прямоугольника или на его границе.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Баранов, Д. Горячкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Начинающий программист Вася увлекается робототехникой и посещает турниры, посвященные этой тематике. В рамках каждого турнира перед участниками ставится набор задач, для решения которых требуется писать программу для специализированного робота. Одной из таких задач Вася захотел с вами поделиться.
Имеется манипулятор, состоящий из 2-х звеньев (костей), управляемых моторами. Моторы могут поворачиваться на некоторый положительный угол, заданный в радианах. Требуется, получив на вход координаты (x0, y0), определить, на сколько радиан нужно повернуть каждый из моторов, чтобы манипулятор занял указанную позицию. Начало отсчета координат — крепление первой кости. Длины и углы поворота каждой из костей ограничены.
Входной файл содержит набор вещественных чисел:
R1, R2 — размеры 1-й и 2-й кости;
F1, F2 — максимальный раствор угла для каждой из костей;
x0, y0 — координаты назначения.
Выходной файл должен содержать вещественные значения φ1, φ2 — углы поворота для каждого из моторов, указанные с точностью не менее 5 знаков после запятой.
Если решение не может быть найдено, вывести -1.
Все тесты подобраны таким образом, чтобы снизить влияние погрешности машинного округления на результат решения.
10 > R1 ≥ R2 > 0, π > (F1, F2) > 0,
x0 ∈ [ − 10, 10], y0 ∈ [0, 10]
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Кленин | Ограничение времени: | 5 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Среди данных N точек на плоскости с координатами (xi, yi) требуется найти такие три точки A, B и C, что выпуклый (меньший 180°) ∠ ABC будет наибольшим.
Никакие три исходные точки не лежат на одной прямой.
Во входном файле содержится число N, за которым следует N пар целых чисел xi yi.
В выходном файле должно содержаться три целых числа A B C — номера точек, образующих максимальный угол ∠ ABC. Точки нумеруются с 1. Если решений несколько, вывести любое из них.
3 ≤ N ≤ 103
0 ≤ xi, yi ≤ 106
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | calc.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | calc.out |
В качестве домашнего задания по информатике ученикам предложено разработать специальный калькулятор, который устроен следующим образом.
Сначала пользователь вводит целое положительное число n, которое выводится на экран. Затем пользователь может нажимать на три кнопки: A, B и C.
При нажатии на кнопку A число, которое выведено на экран, делится на 2. Если число на экране нечетное, то остаток отбрасывается. Например, результат этой операции для числа 80 равен 40, а для числа 239 равен 119.
При нажатии на кнопку B к числу, которое выведено на экран, прибавляется 1, и результат делится на 2. Остаток от деления отбрасывается. Например, результат операции для числа 80 равен 40, а для числа 239 равен 120.
При нажатии на кнопку C происходит следующее. Если число, которое выведено на экран, положительное, то из него вычитается 1 и результат делится на 2, остаток отбрасывается. Если же перед нажатием на кнопку C на экран было выведено число 0, то оно остается неизменным. Например, результат операции для числа 80 равен 39, а для числа 239 равен 119.
Пользователь ввел число n и собирается нажать на кнопки операций в некотором порядке. В частности, он планирует нажать на кнопку A суммарно a раз, на кнопку B — b раз и на кнопку C — c раз. Его заинтересовал вопрос, какое минимальное число может получиться в результате выполнения описанных операций.
Требуется написать программу, которая по введенному числу n и числам a, b и c, показывающим количество произведенных на калькуляторе операций разного типа, определяет минимальное число, которое может получиться в результате работы калькулятора.
Входной файл содержит четыре целых числа: n, a, b и c. Числа заданы на одной строке, соседние числа разделены одним пробелом.
Требуется вывести одно число — минимальное число, которое может получиться у пользователя в результате работы калькулятора.
1 ≤ n ≤ 1018, 0 ≤ a, b, c ≤ 60
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | |
---|---|---|---|---|
n | Дополнительные ограничения на a, b, c | |||
1 | 26 | 1 ≤ n ≤ 109 | 0 ≤ (a + b + c) ≤ 7 | |
2 | 23 | 1 ≤ n ≤ 1018 | c = 0 | |
3 | 24 | 1 ≤ n ≤ 1018 | b = 0 | |
4 | 27 | 1 ≤ n ≤ 1018 | 1, 2, 3 |
По запросу сообщается результат окончательной проверки на каждом тесте.
В примере пользователю необходимо оптимально действовать следующим образом: нажать на кнопку B и получить число 36, затем нажать на кнопку A и получить число 18, затем нажать на кнопку C и получить число 8, затем второй раз нажать на кнопку A и получить число 4.
№ | Входной файл (calc.in ) |
Выходной файл (calc.out ) |
---|---|---|
1 |
|
|