Подразделы

Другие разделы

Дата и время

19/12/2024 17:17:55

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printЗадачи Южно-Уральского командного чемпионата 2006

1. Малыш и Карлсон

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Малыш может съесть банку варенья за `А_1` минут, корзину печенья за `B_1` минут, выпить бутылку молока за `C_1` минут. А Карлсон может сделать это за `A_2`, `B_2`, `C_2` минут соответственно. Напишите программу, вычисляющую, за какое минимальное время они смогут покончить с завтраком, состоящим из банки варенья, корзины печенья и бутылки молока?
В первой строке входного файла содержится три целых числа, разделенных пробелами – значения параметров `A_1`, `B_1`, `C_1`. Во второй строке входного файла содержится три целых числа, разделенных пробелами – значения параметров `A_2`, `B_2`, `C_2`. Все числа в диапазоне от 1 до `10^6`.
В выходной файл вывести одно число – минимальное время завтрака с точностью `10^{-5}`.

Пример ввода

13 10 14
6 6 7

Вывод для примера

12.00000

2. Треугольники

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Будем различать следующие варианты взаимного расположения двух треугольников в пространстве:
0) треугольники не пересекаются;
1) угол первого треугольника <протыкает> второй треугольник;
2) угол второго треугольника <протыкает> первый треугольник;
3) контуры треугольников сцеплены между собой.
Напишите программу, определяющую вариант расположения двух треугольников, заданных координатами своих вершин.
В первой строке входного файла содержится девять чисел `x_1,\ y_1,\ z_1`, `x_2,\ y_2,\ z_2`, `x_3,\ y_3,\ z_3`, разделенных пробелами – координаты вершин первого треугольника. В второй строке входного файла содержится девять чисел `x_4,\ y_4,\ z_4`, `x_5,\ y_5,\ z_5`, `x_6,\ y_6,\ z_6`, разделенных пробелами – координаты вершин второго треугольника. Все числа целые, не превышающие по абсолютному значению 1000. Расположение треугольников таково, что варианты хорошо различимы, т.е. либо треугольники находятся на некотором расстоянии друг от друга, либо отрезок, являющийся пересечением треугольников, имеет ненулевую длину.
В первой строке выходного файла вывести одно целое число – номер варианта взаимного расположения треугольников.

Пример ввода

0 0 0 10 0 0 0 10 0
1 1 -1 10 10 -1 1 1 10

Вывод для примера

3

3. Комментарии

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Джон, хотя и пишет на языке С, дает файлам расширение CPP, чтобы использовать в своих программах комментарии в С++-стиле (от // до конца строки). Обычный С-комментарий, который начинается с символов "/*" и заканчивается символами "*/" , Джон также иногда использует, обычно для многострочных комментариев. Для участия в конкурсе программ необходимо, чтобы программа соответствовала стандартам языка ANSI С, и Джону нужно заменить все C++-комментарии на стандартные. Для этого в C++-комментарии можно заменить "//" на "/*" и добавить "*/" в конце строки. Иногда в C++-комментарии может встретиться последовательность символов "*/", в этом случае нужно вставить пробел между двумя этими символами: "* /". К счастью внутри строковых констант в программе Джона не встречаются последовательностей "//", "/*" и "*/".
Напишите программу, которая преобразует в программе Джона C++-комментарии в C-комментарии.
Во входном файле содержится программа Джона, не более 100 строк длиной не более 100 символов.
В выходной файл вывести программу из входного файла, изменив стиль комментариев.

Пример ввода

#include <stdio.h>
/* Пример программы
 */
int main() 
{ printf( //Печать
      "Hello, world");
  return 0; //*/*
}

Вывод для примера

#include <stdio.h>
/* Пример программы
 */
int main() 
{ printf( /*Печать*/
      "Hello, world");
  return 0; /** /**/
}

4. Divide by Squares

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Divide by Squares is played on a rectangular grid. Some of the squares in the grid are numbered. The objective is to divide the grid into rectangular and square pieces such that each piece contains exactly one number, and that number represents the area of the rectangle (from Wikipedia).
On the pictures you can see a sample of the puzzle and its solution.
You are to write program that solves this puzzle.
The first line of the input file contains three integers, separated by spaces – the height `H` (`1\ ≤\ H\ ≤\ 10`), the width `W` (`1\ ≤\ W\ ≤\ 10`) of the grid, and total amount `K` (`1\ ≤\ K\ ≤\ W*H`) of numbers on the grid. Each of the next `K` lines contains three integers, separated by spaces – position `(i,j)` of the number and the number itself. The puzzle in the input has at least one solution.
The output file must contain `K` lines. For each number in the input you should print four integers on corresponding line – coordinates of left upper corner of the rectangle that contains this number and its height and width. You have to print arbitrary solution.

Sample Input

4 4 4
2 1 4
2 3 6
3 1 4
4 4 2

Sample Output

1 1 2 2
1 3 3 2
3 1 2 2
4 3 1 2

5. Плотность населения

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

После проведения переписи населения Флатландии все данные были нанесены на карту. Прямоугольная карта Флатландии была разделена на клетки единичного размера. Число жителей в каждой клетке изменяется от 0 до 9.
Напишите программу, которая находит прямоугольную область наибольшей площади, средняя плотность населения в которой не менее заданной величины `K`.
В первой строке входного файла содержится три целых числа, разделенных пробелами – размеры Флатландии `N` (`1\ ≤\ N\ ≤\ 100`), `M` (`1\ ≤\ M\ ≤\ 100`) и заданная плотность населения `K` (`1\ ≤\ K\ ≤\ 9`). Далее следует `N` строк, каждая из которых содержит `M` цифр от 0 до 9 – карта распределения населения Флатландии.
В первой строке выходного файла вывести четыре целых числа, разделяя их пробелами – номер строки и столбца для левого верхнего угла искомого прямоугольника, его высота и ширина. Если существует несколько областей максимальной площади, то вывести любой вариант. Если такой области не существует, вывести строку "0 0 0 0" (без кавычек).

Пример ввода

3 3 1
020
102
020

Вывод для примера

1 2 3 2

6. Контрольная сумма

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Напишите программу, которая копирует текст из входного файла и добавляет к нему фразу ''Это сообщение содержит ровно `K` букв и ровно `M` цифр.'', при этом `K` и `M` должны учитывать буквы и цифры в добавленной фразе. Буквами считаются строчные и прописные латинские буквы, а также все символы с ASCII-кодами от 128 до 255. Слова "буквы" и "цифры" во фразе должны иметь окончание, соответствующее числительному, например, "21 цифру", "4 цифры", "15 цифр". При необходимости в контрольной фразе можно не выводить одно или оба слова "ровно".
Входной файл содержит одну строку длиной не более 200 символов.
В выходной файл вывести сначала строку из входного файла, затем строку с указанной контрольной фразой.

Пример ввода

Сегодня contest.

Вывод для примера

Сегодня contest.
Это сообщение содержит ровно 49 букв и 3 цифры.

7. Газовые войны

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Газовая компания должна поставлять потребителям определенный контрактами объем газа, но при транспортировке газ может откачиваться из трубы и в результате потребители могут не получить газ в нужном объеме.
Напишите программу, вычисляющую минимальный объем газа, который нужно поставлять газовой компании, чтобы всем потребителям газ дошел в объеме, определяемом контрактами.
Первая строка входного файла содержит три целых числа, разделенных пробелами – количество потребителей `N` (`1\ ≤\ N\ ≤\ 10`), количество промежуточных насосных станций `K` (`0\ ≤\ K\ ≤\ 100`) и количество труб для транспортировки газа `M` (`1\ ≤\ M\ ≤\ 1000`). Вторая строка содержит `N` целых чисел `V_i` (`0\ <\ V_j\ ≤\ 100`), разделенных пробелами – объемы газа, которые необходимо поставить потребителям. Далее следует `M` строк, содержащих по четыре целых числа, разделенных пробелами – номера узлов `a_j` (`0\ ≤\ a_j\ ≤\ K+N`) и `b_j` (`0\ ≤\ b_j\ ≤\ K+N`), связанных трубой, максимальный объем газа `f_j` (`0\ <\ f_j\ ≤\ 100`), который можно подать на вход этой трубы и процент газа `d_j` (`0\ ≤\ d_j\ ≤\ 100`), который выкачивается из этой трубы при транспортировке. Узел c номером 0 соответствует компании-поставщику. Потребителям соответствуют узлы с номерами от 1 до `N`. Промежуточные насосные станции имеют номера от `N+1` до `N+K`. Между двумя узлами проходит не более одной трубы.
В выходной файл вывести одно число – минимальный объем поставок газа для обеспечения всех потребителей с точностью `10^{-5}`. Если для какого-нибудь из потребителей невозможно выполнить поставку в требуемом объеме, то вывести число `-1`.

Пример ввода

1 1 3
10
0 1 5 20
0 2 10 5
2 1 10 5

Вывод для примера

11.21875

8. Задача Пифагора

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Пифагор заказал ремесленнику изготовить несколько прямоугольных треугольников из ценных пород дерева для использования на занятиях по геометрии, но ремесленник перепутал размеры, и треугольники получились не прямоугольные. Чтобы не выбрасывать испорченный ценный материал, ремесленник решил переделать получившиеся треугольники в прямоугольные, постаравшись максимизировать их площади.
Напишите программу, которая по размерам сторон треугольника находит максимальную площадь прямоугольного треугольника, который можно вырезать из этого треугольника.
В первой строке входного файла содержится три числа, разделенных пробелами – длины сторон треугольника. Все числа вещественные, больше 0 и меньше 1000.
В первой строке выходного файла вывести одно число – максимальную площадь прямоугольного треугольника, получаемого из заданного треугольника, с точностью `10^{-5}`.

Пример ввода

10.0 10.0 10.0

Вывод для примера

25.00000

9. The Picture Drawing

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Your mission, if you decide to accept it, is to create a picture drawing program. A picture will consist of the alphabetic characters A-Z and spaces.
Your program will get the information for the picture from the input file. This file will contain lines of characters which your program must interpret to draw a picture. Each row of the picture will be described by a series of numbers and characters, where the numbers before a character tell how many times that character will be used. If there are multiple digits in a number before a character, then the number of times to repeat the character is the sum of the digits before that character.
The character '.' (dot) will be used in the input file to represent spaces in the picture. The descriptions for different rows in the picture will be separated by an end of line.
The input file will be terminated by an end of file.
There is no limit to the number of rows in a picture, though no row will contain more than 200 characters.

Sample Input

2X3.1X
13X1.1X

Sample Output

XX   X
XXXX X
loading