Задачи отборочного тура личного первенства по спортивному программированию
A. Турпоход
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Олег собирается в турпоход. Участки пути можно проходить пешком или проезжать на велосипеде.
Если дорога ровная, то на велосипеде можно проехать быстрее, чем идти пешком.
На пересеченной местности лучше идти пешком, катя велосипед рядом.
Олег выяснил время движения для каждого участка пути в зависимости от способа передвижения. Напишите программу, которая
вычислит минимальное время, которое потребуется Олегу для путешествия.
Первая строка ввода содержит одно целое число `N` (`1<=N<=100`) - количество участков пути.
Вторая строка содержит `N` целых чисел от 1 до 100 - время проезда по `i`-му участку пути на велосипеде.
Третья строка содержит `N` целых чисел от 1 до 100 - время прохождения `i`-го участку пути пешком.
Вывести одно целое число - минимальное время для прохождения пути.
```sample Пример ввода
5
4 10 7 4 6
7 6 15 3 9
```
```sample Пример вывода
26
```
Пояснение к примеру: Олег должен проехать на велосипеде 1, 3 и 5-й участки пути, а 2 и 4-й пройти пешком.
B. Стёртые знаки
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Катя решила несколько примеров по арифметике и оставила тетрадку на столе.
Её маленький брат стёр в решении все знаки, остались только числа.
Напишите программу, которая поможет Кате восстановить знаки в домашней работе.
Первая строка ввода содержит три целых числа от 0 до 100 - аргументы неизвестной операции и результат.
Вывести строку, содержащую первое число, знак операции (+, -, * или /), второе число, знак равенства и третье число,
как показано в примере вывода. Если существует несколько вариантов,
то вывести любой из них. Если Катя ошиблась при вычислениях, то вывести сообщение "Error".
```sample Пример ввода 1
2 2 4
```
```sample Пример вывода 1
2+2=4
```
```sample Пример ввода 2
1 0 10
```
```sample Пример вывода 2
Error
```
C. Найти X
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Дано число `N`. Найти минимальное число `X > N`, которое состоит из тех же цифр, что и `N`.
Первая строка ввода содержит одно целое число `N` (`1 <= N < 10^{100}`).
Вывести строку, содержащую одно целое число - искомое число `X`.
Если такого числа нет, то вывести 0.
```sample Пример ввода 1
2020
```
```sample Пример вывода 1
2200
```
```sample Пример ввода 2
2200
```
```sample Пример вывода 2
0
```
```sample Пример ввода 3
2021
```
```sample Пример вывода 3
2102
```
D. Восстановление результатов
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
При подведении итогов личного первенства по спортивному программированию результаты участников сортируются сначала
в порядке уменьшения количества правильно решённых задач. Участники, имеющие одинаковое количество решенных задач, сортируются
в порядке возрастания времени, которое вычисляется как сумма времени решения последней задачи и штрафов за неверные попытки, сделанные в процессе
решения задач, для правильно решённых задач. У участников, которые не решили ни одной задачи, в колонке времени стоит 0.
После проведения некоторого соревнования сохранилась только последняя колонка таблицы результатов - суммарное время.
Напишите программу, которая определит минимально количество правильно решенных задач для каждого участника по сохранившейся колонке.
Первая строка ввода содержит одно целое число `N` (`1<=N<=100`) - количество участников соревнований.
Следующие `N` строк содержат по одному целому числу от 0 до 1000 - время из последней колонки.
Вывести `N` строк, в каждой строке вывести одно целое число - минимальное количество решенных задач соответствующим участником.
```sample Пример ввода
5
10
25
20
45
0
```
```sample Пример вывода
2
2
1
1
0
```
Пояснение к примеру: Участник 5 решил 0 задач. Участник 4 решил хотя бы одну задачу. Участник 3 мог решить столько же, но с меньшим суммарным временем.
Участник 2 должен решить как минимум 2 задачи, так как его суммарное время больше, чем у участника 3.
E. Головоломка
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (2)
Джон нашел в комнате общежития коробку с частями странной головоломки, оставшуюся от предыдущих жильцов.
Все кусочки имели одинаковый цвет и имели одну из четырех форм - кусочки, которые можно было поставить в один из углов головоломки (на рисунке отмечены номером 1),
два вида кусочков, которые можно было поставить на край головоломки (отмечены номерами 2 и 3), и кусочки из центральной части головоломки (отмечены номером 4).
![width:250px;border:1px solid black|jigsaw](44343.jpg)
Перед тем, как начать собирать эту головоломку, Джон решил выяснить размеры головоломки и пересчитал количество кусочков каждого вида.
Первая строка ввода содержит четыре целых числа в диапазоне от 0 до `10^9` - количество кусочков формы 1, 2, 3 и 4 соответственно.
Вывести одну строку, содержащую два целых числа, разделенные пробелом - ширину и высоту головоломки (ширина должна быть больше или равна высоте).
Если в гололомке не хватает кусочков или в коробке смесь кусочков от нескольких головоломок, то вывести сообщение "impossible".
```sample Пример ввода 1
4 4 4 4
```
```sample Пример вывода 1
4 4
```
Пояснение к примеру 1: пример показан на рисунке.
```sample Пример ввода 2
4 1024 1024 195063
```
```sample Пример вывода 2
773 255
```
```sample Пример ввода 3
4 6 4 14
```
```sample Пример вывода 3
impossible
```
F. Наклейки
Ограничения: время – 250ms/500ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В магазине "7-я" за покупку на 777 или более рублей выдается пакет с наклейками и игрушкой.
Для получения приза нужно наклеить в специальный альбом `N` наклеек. К сожалению,
в пакете может быть случайное количество наклеек для альбома - от `A` до `B`.
Напишите программу, которая определит математическое ожидание количества пакетов для заполнения альбома полностью.
Будем считать, что количество наклеек в пакете является случайной величиной с *дискретным равномерным распределением*.
Первая строка ввода содержит три целых числа - количество мест для наклеек в альбоме `N` (`1<=N<=10^6`) и
границы для количества наклеек в одном пакете `A` и `B` (`0 <= A <= B <= 10^6`, `B>0`).
Вывести одно число - математическое ожидание количества пакетов для заполнения альбома с точностью `10^{-5}`.
```sample Пример ввода 1
20 0 2
```
```sample Пример вывода 1
20.33333
```
```sample Пример ввода 2
50 5 5
```
```sample Пример вывода 2
10.00000
```
```sample Пример ввода 3
256 4 7
```
```sample Пример вывода 3
46.97521
```