Инструменты пользователя

Инструменты сайта


занятие_1

Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

занятие_1 [2013/10/23 12:55]
Пронин Роман
занятие_1 [2013/10/23 12:56] (текущий)
Пронин Роман
Строка 1: Строка 1:
-**1. Провозить запрещено**+**1. Потерянная страница**
  
-Вынаверно, ​обращали внимание на надпись в городском ​транспорте "Багаж по одному из габаритов больше 30x50x100 провозить запрещено". Напишите программу,​ определяющую размеры ​прямоугольного параллелепипеда минимального объема, который нельзя провезти в городском ​транспорте.+Выходя из школьного ​автобуса, Лиза не заметила, что Нельсон подставил ей подножку. Собрав разлетевшиеся при падении ​страницы ​своего доклада, Лиза ​их пересчитала и обнаружила, что одна ​из страниц ​пропала. 
 +Напишите программу, ​которая поможет Лизе ​определить номер ​потерянной страницы.
  
-Вводятся три целых числа A, B, C через пробел – пределы для габаритов запрещенного груза ​(1 ≤ A ≤ B ≤ C ≤ 200). +Первая строка ввода содержит одно ​целое число — количество страниц в докладе (1 ≤ N ≤ 30000). Далее следует N−1 строка, каждая ​из которых содержит ​одно целое число ​от 1 до N – номера собранных ​страниц. Все номера ​страниц различны.
-Вывести три ​положительных целых числа X, Y, Z в порядке возрастания – размеры прямоугольного параллелепипеда минимального объема,​ запрещенного к провозу (1 ≤ X ≤ Y ≤ Z).+
  
-^Пример ввода^Пример ​вывода+Вывести ​одно целое число – номер ​потерянной страницы.
-|30 50 100 |1 1 101|+
  
-**2. Построения** 
  
-Напишите программу,​ вычисляющую на сколько своих цифр некоторое число делится без остатка.\\ ​ 
-В первой строке входного файла содержатся число N (0 <​ N <​ 10<​sup>​9</​sup>​).\\ ​ 
-В выходной файл вывести количество цифр-делителей для числа N. 
 ^Пример ввода^Пример вывода^ ^Пример ввода^Пример вывода^
-|661232 ​|3| +|5\\ 4\\ 5\\ 2\\ 1 |3|
-Примечание к примеру:​ 661232 делится на 1 и на 2 (таких цифр две) и не делится на 3 и 6.+
  
-**3. Парк** 
  
-{{ :r2004.gif?​200|}}В центре городского паркаимеющего ​форму круга радиусом ​R2, находится круглый фонтан ​радиусом R1. Деревья в парке растут в узлах координатной сетки, начало которой находится в центре фонтана. Шаг координатной сетки равен ​1. На границах парка и фонтана деревья не растут. Подсчитайте количество ​деревьев в парке.\\  + 
-Вводятся два целых числа R1 и R2 через пробел (1 ≤ R1 <​ R2 ≤ 10000).\\  +**2Резервное копирование** 
-Вывести количество деревьев.\\+ 
 +Профессор Фринк хочет ​скопировать информацию о своих изобретениях из своего ​компьютера на CD. Для ​уменьшения ​количества дисков он придумал следующий алгоритм. На первом этапе файлы упорядочиваются в порядке уменьшения их размера (при совпадении размеров первым должен быть файл, указанный в списке копируемых файлов раньше). На втором этапе файлы записываются ​на диски. Для записи очередного файла выбирается диск с наименьшим номером среди ​тех используемых для ​копирования ​дисков, ​на который данный файл может поместиться. Если ни одного такого диска нетк набору дисков добавляется новый диск, на который записывается файл. 
 + 
 +Напишите программу,​ определяющую какие файлы ​на какой диск будут записаны при использовании этого ​алгоритма. При записи нужно учитывать, что файл должен занимать целое число ​кластеров ​и, если размер кластера ​равен ​C, файл размером от 1 до C байт занимает C байт на диске, ​файл размером от C+1 до 2·C занимает 2·C байт на диске и так далее. 
 + 
 +Первая строка ввода содержит три целых числа - количество ​файлов N (1 ≤ N ≤ 1000), ​размер одного диска S (10<​sup>​3</​sup>​ ≤ S ≤ 10<​sup>​9</​sup>​) и размер кластера C (1 ≤ C ≤ S,​ S кратно C). Вторая строка ​ввода содержит N целых чисел в диапазоне от 1 до S – размеры файлов
 +В первой строке выведите одно целое число M – количество дисков, использованных для записи. Далее выведите M строк, в (i+1)-й строке выведите номера файлов, которые нужно записать на i-й диск, в порядке их записи.
  
 ^Пример ввода^Пример вывода^ ^Пример ввода^Пример вывода^
-|3|20|+|3 675840000 4096\\ 15 675839000 100000 ​|2\\ 2\\ 3 1|
  
  
-**4Access denied**+**3Построения**
  
-В некоторой операционной системе общие ресурсы обозначаются ​латинскими буквами от A до Z. Пользователь не сможет получить доступ к ресурсу системыесли ​его уровень доступа меньше требуемого ​для ​данного ресурсаНапишите программу,​ которая по информации ​о минимальном уровне ​доступа к ресурсам системы и уровням доступа пользователей, определяет, какие ресурсы системы доступны каждому пользователю.+Иван Петрович ​преподает в школе №100 физкультуру, ​но интересуется ​также математикой, в основном, с практической точки зрения. Например,​ его интересует вопрос, сколько различных построений существует для группы из N человекИван Петрович выяснил, что если N – простое число, ​то получается только 2 построения: в колонну по одному (1×N) и в шеренгу (N×1). Эти тривиальные построения возможны ​для любого N >​ 1 (для N = 1 существует только одно построение 1×1которое не является ни шеренгой, ни колонной). Если N – составное число, то существует и другие нетривиальные ​построения. Для 100 человек существует девять построений:​ 1×100, 2×50, 4×25, 5×20, 10×10, 20×5, 25×4, 50×2 и 100×1.
  
-В первой строке входного файла содержатся два целых числа, разделенных пробелом ​ – количество ресурсов системы M (0 <​ M ≤ 26) и количество пользователей N (0 <​ N ≤ 100). Во второй строке содержится M целых ​чисел от 0 до 1000, разделенных пробелами – минимальные уровни доступа к ресурсам, ​первое число – минимальный уровень доступа к ресурсу A, второе число – к ресурсу B и т. д. В третьей строке содержится ​N целых чисел ​от 0 до 1000, разделенных пробелами – уровни доступа пользователей.+Напишите программу, которая находит число различных построений для группы из N человек. 
 +В первой строке ​ввода ​содержится одно целое ​число ​N (1 ≤ N ≤ 10<​sup>​9</​sup>​).
  
-В выходной файл для каждого пользователя вывести строку, состоящую из имен ресурсов системы,​ доступных ​этому ​пользователю. i-я строка выходного файла соответствует i-му пользователю из входного файла. Имена ресурсов перечисляются в алфавитном порядке.+Вывести ​одно ​целое ​число – количество различных построений для группы из N человек.
  
 ^Пример ввода^Пример вывода^ ^Пример ввода^Пример вывода^
-|5 3\\ 10 11 7 4 30\\ 8 15 10 |CD\\ ABCD\\ ACD|+|100 |9|
  
 +
 +**4. ICQ**
 +
 +В школе №100 у каждого школьника есть свой личный номер ICQ. В школе распространено мнение,​ что чем меньше значение номера ICQ, тем более продвинутым является школьник. Известен список всех школьников с номерами ICQ. Требуется вывести список K самых продвинутых школьников.
 +
 +В первой строке ввода содержится количество учеников в школе N (1 ≤ N ≤ 100) и число K (1 ≤ K ≤ N). Далее следует N строк, в каждой строке содержится фамилия школьника (без пробелов,​ содержит не более 20 строчных латинских букв) и через пробел номер ICQ (1 ≤ ICQ ≤ 10<​sup>​9</​sup>​). Номера ICQ и фамилии у школьников различны.
 +
 +Вывести фамилии K самых продвинутых школьников в лексикографическом порядке (по алфавиту). Каждая фамилия выводится на отдельной строке.
 +
 +^Пример ввода^Пример вывода^
 +|3 2\\ ivanov 170\\ semenova 320\\ antonov 201 |antonov\\ ivanov|
  
  
  
-**5. Городской ​парад**+**5. Морской ​бой**
  
-{{ :​pic1.png?​300|}}Шеф ​Виггам должен обеспечить ​правильный порядок движения платформ на городском параде. Платформы могут прибывать в любом порядке, но должны выходить на центральную площадь строго ​в порядке возрастания номеровВиггам может направить платформу либо сразу на площадь, либо сначала на боковую улицу, ​а затем с нее на площадь. Длина боковой улицы достаточна для ​размещения всех платформ, но ширина улиц не позволяет одной платформе обгонять другую.+В школе ​№ 100 школьники любят играть в "морской бой"​. Каждый из игроков на доске 10x10 расставляет ​один корабль из 4 клеток, 2 корабля из 3 клеток, 3 корабля из 2 клеток и 4 корабля из одной клетки таким образом,​ чтобы они не соприкасались даже ​углами. Затем один из игроков "стреляет", ​называя номер одной из клетокЕсли "​выстрел"​ не попадает ни по одному из кораблей, то результатом "выстрела" является "промах". Если "выстрел" попадает в один из кораблей, но у этого корабля остаются части, в которые не попал ни один ​выстрел,​ то результат "выстрела" – повреждение корабля, если ​все ​части корабля повреждены, то результат – уничтожение корабля.
  
-Напишите программу, определяющуюсможет ли Виггам ​обеспечить правильный порядок движения платформ на параде. +{{ :​num.png?​150|}} Для ​проведения чемпионата школы ​по игре в "морской бой"​ разрабатывается сервер,​ на который игроки загружают расположения своих кораблей и затем отправляют "выстрелы" ​по кораблям противника. Требуются написать один из ключевых модулей этого сервера – программу, которая вычисляет результаты "​выстрелов"​
-Первая строка ввода содержит одно целое число N (1 ≤ N ≤ 100) – количество ​платформ. Вторая строка содержит N различных целых чисел от 1 до N – номера платформ в порядке прибытия+В первой строке ввода содержится одно целое число N (1 ≤ N ≤ 100) – количество ​"​выстрелов". Далее следует 10 строк ​по 10 символов – расположение кораблей противника. Пустая клетка обозначается символом '​.',​ а клетка с частью корабля – символом '#'​. Далее следует N строк, в каждой строке – номер клетки, ​по которой игрок сделал выстрел. Клетки доски пронумерованы целыми числами слева ​направо и сверху вниз от 1 до 100 (см.рис.).
-Вывести сообщение "​YES", ​если можно обеспечить правильный ​порядок платформ, или сообщение "​NO", ​если нельзя.+
  
 +Вывести N строк с результатами "​выстрелов"​. В i-й строке должен быть результат i-го "​выстрела"​. В случае промаха вывести сообщение "​missed",​ повреждения корабля – "​damaged",​ уничтожения корабля – "​sinked",​ повторного "​выстрела"​ по клетке – "​repeated"​.
  
 ^Пример ввода^Пример вывода^ ^Пример ввода^Пример вывода^
-|4\\ 1 3 4 2 |YES| +|3\\ ..####​.###​\\ #​.........\\ ​ #​.#​.......\\ ​ ..#​....#​..\\ ​ ..#​.......\\ ​ ........#​.\\ ​ ##​...##​...\\ ​ ..........\\ .......#​..\\ ...#......\\ 1\\ 11\\ 21|missed\\ damaged\\ sinked|
-|4\\ 4 3 2 1 |NO|+
  
  
/home/m/mvgoru/wiki.gumnasion.ru/public_html/data/pages/занятие_1.txt · Последние изменения: 2013/10/23 12:56 — Пронин Роман