Входной файл: | input.txt | Ограничение времени: | 5 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 200 Мб | |
Максимальный балл: | 10 |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Входной файл: | input.txt | Ограничение времени: | 1 сек | |
Выходной файл: | output.txt | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Вы реализуете игру "дартс" в виртуальной реальности. Игра устроена следующим образом. Дана мишень в форме круга радиуса R, расположенная в плоскости XY с центром в координатах (0, 0), разбитая на n равных секторов. Сектора пронумерованы от 1 до n по часовой стрелке. В момент броска мишень находится в таком положении, что сегмент с номером 1 расположен в верхней полуплоскости справа от оси Y. Мишень закручивается вокруг оси Z по часовой стрелке и приобретает постоянную угловую скорость w градусов в секунду.
Игрок, стоя лицом к мишени на расстоянии z, бросает дротик из координаты (x, y) в плоскости XY перпендикулярно мишени в её сторону. Дротик летит прямолинейно с постоянной скоростью v, не изменяя высоту полёта.
Требуется написать программу, которая определяет номер сектора, в который попадёт игрок.
Входные данные содержат целые числа R, w, x, y, z, v, n. Гарантируется, что участник не попал в границу между секторами.
Выходные данные должны содержать единственное целое число — номер сектора, в который попал участник, или 0, если участник не попал в мишень.
1 ≤ r, w, v, z ≤ 100
− 100 ≤ x, y ≤ 100
2 ≤ n ≤ 100
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | А. Кленин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Приложение дополненной реальности пытается найти на изображении,
полученном с камеры телефона, метку, представляющую собой ярко раскрашенный прямоугольник.
Благодаря контрастному цвету прямоугольника на этапе предварительной обработки
изображение удалось преобразовать в массив из W на H элементов,
каждый из которых равен либо '#
' (ASCII 35),
если он принадлежит прямоугольнику,
либо '.
' (ASCII 46) в противном случае.
#
' вместо '.
' или наоборот.
В первом примере теста ошибочным может быть левый верхний элемент элемент непосредственно справа от него, элемент непосредственно снизу от него. Все остальные варианты из нуля или одной ошибки не дают прямоугольника в результате исправления.
Напишите программу, которая по данному изображению подсчитывает количество различных возможных положений метки.
Первая строка входного файла содержит целые числа W H N.
Следующие H строк содержат по W символов .
и #
каждая —
изображение после предварительной обработки.
Выходной файл должен содержать единственное целое число — количество возможных расположений метки.
1 ≤ W, H ≤ 100, 0 ≤ N ≤ W × H
Решения работающие для W, H ≤ 20 оцениваются из 50 баллов. Баллы выставляются за каждый успешно пройденный тест.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Одно из заданий на соревнованиях по подводной робототехнике — полоса препятствий. Полоса состоит из n подряд идущих стен, высота i-й стены hi.
Цель робота — преодолеть все стены, достать флаг, который находится в конце полосы за всеми стенами, и вернуться обратно. Стену можно преодолеть двумя способами: подняться, проплыть над ней и опуститься обратно или сделать подкоп. Если стена была преодолена с помощью подкопа, то в при проходе в обратную сторону можно воспользоваться уже готовым подкопом. Всего разрешается сделать не более m подкопов.
Робот имеет ограниченный заряд батареи. Изначально он способен подняться над стеной высотой k или меньше, далее после каждого подъёма максимальная высота стены, которую может преодолеть робот, снижается на 1.
Робот поддерживает две команды: D
— идти через подкоп (если подкопа ещё нет, то робот выкапывает его), U
— проплыть над препятствием.
Первая строка входного файла содержит целые числа n m k. Следующая строка содержат n целых чисел hi - высоты стен.
Выходной файл должен содержать строку NO
, если задание выполнить невозможно.
В противном случае — две строки: строку YES
и строку из 2n символов U
и D
— последовательность команд робота, которая позволит ему преодолеть полосу препятствий и вернуться обратно. Первые n символов содержат описание прохождение от стены с номером 1 до стены с номером n, следующие n
символов содержат описание прохождения от стены с номером n до стены с номером 1.
Если решений несколько, выведите любое из них.
1 ≤ n, m ≤ 105, 1 ≤ k, hi ≤ 109
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Дополнительные ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 40 | 1 ≤ n, m ≤ 102, 1 ≤ k, hi ≤ 109 | полная | |
2 | 60 | 1 ≤ n, m ≤ 105, 1 ≤ k, hi ≤ 109 | 1 | полная |
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
Программа для робота X представляет из себя последовательность из 0
и 1
.
Известно, что если в коде содержится K подряд стоящих 0
или 1
,
то робот сбрасывается к заводским настройкам.
Вася написал программу для робота.
В ходе написания программы часто допускаются ошибки,
поэтому программа Васи может содержать K или более подряд идущих 0
или 1
.
Вася не хочет сброса настроек на роботе, но в тоже время он хочет
как можно быстрее запустить свою программу.
Для этого он хочет внести минимальное количество изменений в код программы,
так чтобы программа не вызывала сброса настроек.
Изменения бывают только двух видов: замена символа 1
на 0
и замена символа 0
на 1
.
Программа Васи может быть достаточно длинной, поэтому он хочет автоматизировать процесс корректировки.
Первая строка входных данных содержит два целых числа n и k.
Вторая строка входных данных содержит строку длины n, состоящую из 0
и 1
.
Выходные данные должны содержать одну строку длины n — откорректированную программу.
Если решений несколько, выведите любое из них.
3 ≤ n, k ≤ 3 ⋅ 105
Решения, работающие для n ≤ 3, оцениваются из 20 баллов. Решения для n ≤ 10 оцениваются из 50 баллов. Баллы выставляются за каждый успешно пройденный тест.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | И. Блинов, М. Кузин | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
Вася пишет игру — 2D космический симулятор. Космический корабль представляет из себя выпуклый многоугольник, состоящий из n вершин. По задумке Васи улучшение корабля должно происходит следующим образом: корабль заменяется на другой корабль — выпуклый многоугольник большего размера, стороны которого содержат все вершины прошлого выпуклого многоугольника, и при этом имеет минимальное возможное количество вершин.
Вася понял, что ему не хватает знаний для реализации данной механики, поэтому он хочет для начала определить, сколько вершин будет содержать космический корабль после улучшения. С этой задачей он тоже не справился, поэтому делегировал её вам.
Первая строка содержит одно целое число N — количество вершин в многоугольнике описывающем, космический корабль. Следующие N строк содержат N пар вещественных чисел (xi, yi) (по одной в строке) — координаты вершин выпуклого многоугольника, описывающего космический корабль, в порядке обхода.
Выходные данные должны содержать одно целое число — количество вершин в новом многоугольнике.
− 10000 ≤ xi, yi ≤ 10000
3 ≤ N ≤ 104
Баллы выставляются за каждый успешно пройденный тест.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 256 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
Слон Пахом создаёт новую RPG, для игры ему потребовался уровень-лабиринт. Лабиринт содержит n × m платформ, n рядов по m платформ. Платформы бывают трёх видов:
-
"
(находясь на такой платформе можно, пройти только влево или вправо) или
"|
" (находясь на такой платформе, можно пройти только вверх или вниз).
+
" (можно пройти в любую сторону).
#
" (по ним нельзя пройти).С платформы на платформу можно перейти, только если платформы стыкуются между собой. Во время похождения по коридору игрок может повернуть платформу, на которой он находится, на 90 градусов и продолжить прохождение в любом направлении, или же оставить платформу нетронутой и пройти дальше.
Игрок появляется в левом верхнем углу лабиринта и должен пройти в правый нижний угол.
Слон Пахом сгенерировал несколько лабиринтов, но теперь начал сомневаться в проходимости этих лабиринтов. Кроме того, Пахом считает, что поворот платформы запутывает игрока, поэтому для он хочет определить, можно ли пройти лабиринт, а если можно, то он хочет найти минимальное количество поворотов платформ, необходимое для прохождения лабиринта.
Слон Пахом не справился с поставленной задачей и просит вас написать программу для определения минимального необходимого количества поворотов платформ для прохождения лабиринта, если лабиринт проходимый.
Первая строка входных данных содержит два целых числа n и m. Следующие n строк содержат по m символов каждая — описание лабиринта.
Первая строка выходных данных должна содержать "YES
",
если лабиринт проходимый, в противном случае "NO
".
Если лабиринт проходимый, то следующая строка должна содержать целое число k — минимальное количество поворотов, необходимое для прохождения лабиринта.
1 ≤ n, m ≤ 103
Решения, работающие для n = 1, оцениваются из 30 баллов. Баллы выставляются за каждый успешно пройденный тест.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Автономный необитаемый подводный аппарат проплыл по заданной траектории, записав последовательность целых чисел ai — глубину своего погружения в метрах на i-й секунде.
Известно, что за одну секунду глубина погружения не может измениться более чем на d метров в большую или меньшую сторону. Определение глубины не всегда работает точно, из-за чего это условие может быть нарушено в исходной последовательности. Необходимо очистить данные, удалив из них как можно меньше элементов.
Требуется написать программу, которая по данным ai и d определит наименьшее возможное количество элементов, которые нужно удалить из последовательности ai чтобы разность рядом стоящих элементов в оставшейся последовательности по модулю не превосходила d.
Входные данные содержат целые числа n и d — количество измерений и максимальный перепад глубины. Далее следует n целых чисел ai — измерения глубины.
Выходные данные должны содержать единственное целое число — наименьшее количество удаляемых элементов.
1 ≤ n ≤ 20 000, 0 ≤ d ≤ 1000, 0 ≤ ai ≤ 109
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб | |
Максимальный балл: | 100 |
Юный программист Вася решил разработать собственную платформу виртуальной реальности. Для начала он реализовал вывод пустой чёрной сцены с единственным красным шаром. Однако в алгоритме вывода шара Вася допустил ошибки, из-за которых шар не всегда выводился правильно.
Для отладки Вася сделал скриншоты своего приложения (шар на них должен
превратиться в круг). Скриншот представлен прямоугольным массивом символов,
в котором символ "#
" представляет красный пиксель,
а символ ".
" — чёрный пиксель.
Если шар нарисован правильно, то красными будут только те пиксели, координаты которых (x; y) удовлетворяют условию (x − x0)2 + (y − y0)2 ≤ r2, где x0, y0, r — неизвестные целые числа.
Требуется написать программу, которая по изображению выяснит, правильно ли на нём нарисован шар (спроецированный в круг), и если да, то определит значения x0, y0, r.
Первая строка входных данных содержит целые числа X Y — ширину и высоту прямоугольника.
Следующие Y строк содержат по X символов "#
" и ".
" каждая —
описание изображения.
Выходные данные должны содержать целые числа 1x0 y0 r, если изображение является правильным, и число 0 в противном случае. Координаты отсчитываются от верхнего левого угла.
3 ≤ X, Y ≤ 2000, r ≥ 1
1 ≤ x0 − r < x0 + r ≤ X, 1 ≤ y0 − r < y0 + r ≤ Y
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
Автор: | И. Блинов | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Вася создаёт игру про корабли. В игре есть мины, которые имеют форму круга. Корабль имеет форму выпуклого многоугольника. Вася хочет придумать механику взаимодействия мины и корабля, для этого ему требуется вычислить площадь пересечения мины и корабля. Так как у Васи плохо с геометрией, он просит вас написать программу для вычисления площади пересечения корабля, заданного координатами вершин, и мины, заданной радиусом и координатами центра.
Первая строка входных данных содержит 3 целых числа xc, yc, rc — координаты и радиус мины. Вторая строка содержит одно целое число N — количество вершин в многоугольнике, описывающем корабль. Следующие N строк содержат N пар чисел (xi, yi) (по одной паре в строке) — координаты вершин выпуклого многоугольника, описывающего корабль, в порядке обхода по часовой стрелке.
Выходные должны содержать одно вещественное число — площадь пересечения мины и корабля с точностью не менее двух знаков после запятой.
− 1000 ≤ xc, yc, rc, xi, yi ≤ 1000
3 ≤ N ≤ 103
Решения, работающие для − 10 ≤ xc, yc, rc, xi, yi ≤ 10, оцениваются из 50 баллов. Баллы выставляются за каждый успешно пройденный тест.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
Автор: | Кленин А. | Ограничение времени: | 4 сек | |
Входной файл: | input.txt | Ограничение памяти: | 16 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 1 |
Лабиринт размером N x N клеток задан массивом символов. Символ '#' обозначеет стену, символ '.' — проход. Передвигаться по лабиринту можно шагами по горизонтали или вертикали, но не по диагонали.
Требуется найти длину кратчайшего пути между левым верхним и правым нижнем углами или определить, что пути не существует.
Первая строка входного файла содержит размер лабиринта N.
Следующие N строк содержат по N символов — описание лабиринта.
Выходной файл должен содержать единственное целое число — длину кратчайшего пути, либо −1, если пути не существует
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Автор: | И. Олейников | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
Отдел инновационных технологий фирмы "Division Computers" решил, что повысить производительность в написании программ можно, если использовать модульное программирование, т.е. когда когда каждый программист пишет свою часть отдельно.
Когда все программисты сдали в отдел свою работу, выяснилось, что некоторым модулям для правильного функционирования требуются другие модули, при этом если i-тому модулю нужен j-тый, то и наоборот j-тому модулю нужен i-тый. Вам, как одному из программистов отдела, поручено написать программу, которая по сведениям о связях между модулями определила бы, сколько минимальных программ можно из них собрать. Минимальной считается программа, которую нельзя разделить на более мелкие части.
Входной файл содержит числа N и M — соответственно число модулей и связей между ними, за которыми следуют M пар чисел ai aj, означающие, что i-тый и j-тый модули не могут функционировать друг без друга.
Выходной файл должен содержать число получившихся после сборки программ.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Author: | StdAlg | Time limit: | 1 sec | |
Input file: | input.txt | Memory limit: | 8 Mb | |
Output file: | output.txt | |||
Maximum points: | 1 |
You are to write a program that performs a topological sorting of a directed graph. Graph contains N vertices, numbered with integers from 1 to N, and M edges.
In other words, given a partial order on numbers from 1 to N, your program must produce some linear order on these numbers which does not conflict with the given partial order.
These pairs may also be considered comparisons where the first number precedes the second one.
Output file must contain a permutation of integers from 1 to N — numbers of vertices sorted in topological order. (That is, representing a linear order.) If ordering is not possible, output file must contain a single number − 1.
No. | Input file (input.txt ) |
Output file (output.txt ) |
---|---|---|
1 |
|
|
Автор: | И. Туфанов | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 100 |
При строительстве нового кампуса ДВФУ на о. Русском по дну пролива был проложен водовод с материка на остров. К сожалению, после завершения строительства все чертежи были утеряны, а строители разъехались. Чтобы восстановить карту водовода, были проведены гидрографические работы.
Была составлена прямоугольная карта залива, разбитая на ячейки. Левый столбец ячеек примыкает к материку, а правый — к острову. По результатам работ каждая ячейка была помечена символом '#' (по ячейке может проходить водовод) или '.' — водовод по ячейке точно не проходит.
Известно, что водовод представляет собой последовательность ячеек, имеющих общую сторону. Первая его ячейка находится в первом столбце клеток карты, последняя — в последнем. Водовод не проходит дважды через одну и ту же ячейку.
Дана карта, составленная по результатам работ. Необходимо определить, можно ли однозначно восстановить водовод по карте.
Первая строка входного файла содержит размеры карты — высоту H и ширину W. Далее следует H строк по W символов в каждой — карта.
Если положение водовода может быть однозначно восстановлено, то выведите сначала слово YES
,
а затем набор чисел, содержащих описание самого водовода.
Первое число в описании обозначает количество ячеек водовода, n, за которым следует
n пар чисел вида ri, ci, обозначающих номер строки и номер столбца очередной ячейки
(строки и столбцы нумеруются с единицы).
Если существует несколько способов восстановить положение водовода, то выведите сначала слово
MULTIPLE
, а затем два различных описания водовода в любом порядке.
Если существует более двух вариантов, выведите любые два из них.
Если водовод восстановить невозможно, выведите единственное слово NO
.
2 ≤ H, W ≤ 200
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
Автор: | Р. Данилов | Ограничение времени: | 5 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 1 |
Стивен устроился на работу программистом в новую транспортную компанию. В его обязанности входит оптимизация стоимости грузоперевозок из одной страны в другую.
В базе данных компании содержатся N городов, пронумерованных от 1 до N, и M односторонних дорог между некоторыми из них. Дорога номер i характеризуется тремя числами ui vi li — начальным городом, конечным городом и длиной дороги. Гарантируется, что ui ≠ vi, и не существует двух разных дорог i, j, для которых ui = uj, vi = vj.
Страна представляет из себя такое множество из одного или более городов, что:
Так как страны не дружат между собой, дороги из одной страны в другую находятся в плачевном состоянии. Это представляет главную проблему, поэтому стоимость перевозок внутри страны можно считать равной нулю. Стоимостью перевозки груза по дороге, соединяющей города из разных стран, будем считать длину этой дороги.
Запрос на перевозку определяется парой чисел sj fj — номерами города отправления и города назначения j-го груза. Напишите программу, которая для каждого из Q запросов определяет наименьшую возможную стоимость перевозки груза.
В тесте из примера имеется две страны. Одна состоит из городов 1, 2, 3, другая — из городов 4, 5.
Входной файл содержит целые числа N M — количество городов и дорог соответственно.
Далее следует M троек целых чисел ui vi li — начальный город, конечный город и длина i-й дороги.
Далее следует целое число Q, за котором идут Q запросов по два целых числа sj fj — город отправления и город назначения j-го груза.
Выходной файл должен содержать Q целых чисел, каждое из которых равно наименьшей стоимости перевозки для соответствующего запроса, или − 1, если эта перевозка невозможна.
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
Автор: | ACM ICPC 2009-2010, NEERC, Northern Subregional Contest | Ограничение времени: | 3 сек | |
Входной файл: | bureau.in | Ограничение памяти: | 256 Мб | |
Выходной файл: | bureau.out | |||
Максимальный балл: | 1 |
Давным давно в одном далеком королевстве король решил записывать все законы королевства. С тех пор, когда появлялся новый закон, соответствующую запись добавляли в архив законов.
Много веков спустя юристы обнаружили, что в королевстве было только два вида законов:
Закон считается активным если и только если нет активного закона, отменяющего его.
Ваша задача — написать программу, которая определяет, какие законы до сих пор активны.
Первая строка входного файла содержит целое число n (1 ≤ n ≤ 105) — число изданных законов.
Следующие n описывают по одному закону каждая. Каждое описания удовлетворяет одному из следующих форматов:
Законы нумеруются с единицы.
№ | Входной файл (bureau.in ) |
Выходной файл (bureau.out ) |
---|---|---|
1 |
|
|