Задания олимпиады по информатике разбиты на две части - теоретическую и практическую. В теоретичекой части требуется
в произвольной форме (например, в виде словесного описания)
привести алгоритм, предназначенный для решения задачи.
В практической части требуется написать программу на языке
Паскаль или Си, удовлетворяющую условиям задачи.
На плоскости отмечено несколько точек. Определить, в какой
последовательности их нужно соединить отрезками так, чтобы
получилась замкнутая ломаная без самопересечений.
Определить, что делает данный алгоритм:
N:=0;
ДЛЯ K ОТ 1 ДО 10000 ВЫПОЛНИТЬ
X:=СЛУЧ;
Y:=СЛУЧ;
ЕСЛИ X*X+Y*Y<=1 ТО N:=N+1;
КОНЕЦ_ЦИКЛА
X:=N/2500;
ВЫВЕСТИ(X);
{примечание: функция СЛУЧ выдает случайное вещественное число
от -1 до 1}
Вы находитесь в одном из вагонов поезда с конечным, но
неизвестным количеством вагонов. В каждом вагоне есть доска,
мел и тряпка. Вы можете переходить из вагона в смежный вагон,
писать на досках и стирать любые надписи с них. До Вас на
каждой доске уже могут быть любые записи. Опишите алгоритм,
который позволил бы Вам определить, замкнут данный поезд
(то есть, следует ли первый вагон сразу за последним) или нет.
Из последовательности натуральных чисел a, a+1, a+2, ..., N
выделить наибольшую возрастающую последовательность,
каждый последующий член которой имеет с предыдущим наибольший общий делитель, равный произведению двух различных простых чисел.
На предприятии работают N сотрудников с зарплатами
x1, x2, ..., xN. Директор решил выделить M рублей на повышение
зарплат сотрудников. Деньги распределяются следующим образом:
один рубль добавляется к самой низкой зарплате, после этого
снова ищут человека с самой низкой зарплатой и добавляют рубль
к его зарплате, и так далее. Данный процесс продолжают до тех
пор, пока не израсходуются все M выделенных рублей. Определить
наименьшую зарплату на предприятии после такого повышения.
На предприятии работают N сотрудников с зарплатами
x1, x2, ..., xN. Директор решил выделить M рублей не повышение
зарплат сотрудников. Деньги распределяются следующим образом:
один рубль добавляется к самой низкой зарплате, после этого
снова ищут человека с самой низкой зарплатой и добавляют рубль
к его зарплате, и так далее. Данный процесс продолжают до тех
пор, пока не израсходуются все M выделенных рублей. Определить
наименьшую зарплату на предприятии после такого повышения.
Количество сотрудников: N<30000
Зарплата сотрудников: целые неотрицательные числа
x1, x2,...,xN < 30000
Выделенная для повышения зарплаты сумма: M<1000000
расположены в файле input.txt и имеют следующий формат:
в первой строке через пробел следуют два числа - N и M,
в последующих строках указаны зарплаты сотрудников.
- наименьшая зарплата после повышения - должен быть
выведен на экран.
Пример файла input.txt
4 10
7
9
1
5
Результат, соответствующий примеру: 7
Имеются N пустых коробок. За один ход разрешается положить
в K (K<N) коробок по 1 рублю. Выигрывает тот, после хода
которого в какой-то из коробок впервые окажется ровно M рублей.
Следует написать программу, играющую в данную игру.
N<1000;
K<N;
M<10000.
расположены в файле input.txt
В первой строке через пробел идут числа N, K, M
В последующих N строках расположены числа -
- количество денег в соответствующих коробках на данный
момент.
помещается в файл output.txt:
в K строках располагаются K чисел (по 1 числу в строке),
соответствующих номерам коробок, в которые кладется
по 1 рублю.
Помимо вывода в файл output.txt, программа должна
записывать в файл moves.txt свои ходы в следующем формате:
1 строка: K чисел - номера коробок, в которые программа
кладет по 1 рублю за свой первый ход;
2 строка: K чисел - номера коробок, в которые программа
кладет по 1 рублю за свой второй ход;...
и так далее.
На плоскости отмечено N точек. Написать программу, которая
определяет, в какой последовательности их нужно соединить
отрезками так, чтобы получилась замкнутая ломаная
без самопересечений.
Количество точек (N) не превосходит 30000.
расположены в файле input.txt и имеют следующий формат:
первая строка - количество точек (N),
в следующих N строках - координаты точек через пробел.
- номера точек в порядке соединения в ломаной - записываются
в файл output.txt через пробел.
Пример файла input.txt:
5
0 0
1 1
1 0
0.5 0.5
0 1
Пример выходного файла, соответствующего примеру:
1 5 2 4 3
*) Задача может обладать несколькими правильными решениями -
- требуется привести хотя бы одно.
**) В приведенном выше примере точки соединяются в такой
последовательности: 1-5-2-4-3, после чего точка N3 соединяется
с точкой N1. Второй раз записывать точку N1 в выходной файл
не нужно.
Желаем удачи!
Со всеми вопросами обращайтесь:
E-mail: inform@edu.yar.ru
тел: (0852) 32-88-91, 30-29-62 Богомолов Юрий Викторович.
|