Экзамены и диагностики

10 005 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов. Известно, какой объём занимает файл каждого пользователя. По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей. Напишите программу, которая вычисляет  наибольшее число пользователей, чьи файлы могут быть помещены в архив, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.

Входные данные:
В первой строке находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 100 000) и – количество пользователей (натуральное число, не превышающее 10000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке.

Выходные данные:
Выведите два числа в одной строке через пробел: сначала наибольшее число пользователей, чьи файлы могут быть помещены в архив, затем максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.
 
Пример
Входные данные Выходные данные
1 100 4
80
30
50
40
2 50

При таких исходных данных можно сохранить файлы максимум двух пользователей. Возможные объёмы этих двух файлов 30 и 40, 30 и 50 или 40 и 50. Наибольший объём файла из перечисленных пар – 50, поэтому ответ для приведённого примера: 2 50

 
В наборе чисел N замените одно число на число из набора чисел M таким образом, чтобы сумма чисел в наборе N была как можно ближе к числу S. Выведите три числа, каждое в отдельной строке:
1 строка - число, которое заменили из набора N;
2 строка - число из набора M, которым заменили;
3 строка - полученную сумму чисел из набора N.
Гарантируется, что такую замену сделать можно. Если возможных замен  несколько, то выбрать ту, в которой число из набора N меньше.

Входные данные
В первой строке вводится через пробел 3 числа: n (10<=N<=105) - количество чисел в наборе N, m (10<=M<=105) - количество чисел в наборе MS (10<=S<=109S>sum(N), где sum(N) - сумма всех чисел набора N.
Во второй строке записан набор чисел N: n чисел, разделенных одним пробелом (каждое число по модулю не превышает 105).
Во третьей строке записан набор чисел M: m чисел, разделенных одним пробелом (каждое число по модулю не превышает 105).

Выходные данные
Выведите на экран ответ на задачу, как указано в условии.
 
Примеры
Входные данные Выходные данные
1 2 2 10
2 4 
1 3
2
3
7
В файле записаны целые положительные числа. В первой строке файла записано число N - количество чисел, и натуральное число S. В следующих N строках записаны сами числа.
Укажите в ответе два числа через пробел: сначала максимальное количество чисел, которые необходимо сложить, чтобы сумма была не больше числа S, затем, значение полученной суммы.
В файле записаны целые положительные числа. В первой строке файла записано число N - количество чисел. В следующих N строках записаны сами числа. В ответе укажите в столбик 10 самых больших трехзначных чисел.

Файл к заданию
Пусть M – сумма простых натуральных делителей целого числа, не считая единицы и самого числа, а KM - количество таких делителей. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 2 560 000, в порядке возрастания и ищет среди них такие, для которых значение M нечетное, а КM=6. Выведите первые пять найденных чисел и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – сумма минимального четного и максимального нечетного натуральных делителей целого числа, не считая единицы и самого числа. Если какого-либо делителя у числа нет (либо четного, либо нечетного), то значение этого делителя считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 12 000 000, в порядке возрастания и ищет среди них такие, для которых значение 0 < M < 1 000 000 . Выведите первые пять найденных чисел и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – количество различных четных натуральных  нетривиальных делителей целого числа, а SM - сумма этих делителей.
Напишите программу, которая перебирает целые числа, большие  1 000 000, в порядке возрастания и ищет среди них такие, у которых M = 5. Если таких делителей у числа нет, то значение SM считается равным нулю.  Выведите первые пять найденных чисел и соответствующие им значение SM

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение SM (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – сумма простых натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие  500 000, в порядке возрастания и ищет среди них такие, для которых значение 10000 < M < 50000 . Выведите первые пять найденных чисел
и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Пусть M – разность (по модулю) двух парных натуральных делителей целого числа, не равных единице и самому числу. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие  1 000 000, в порядке возрастания и ищет среди них такие, у которых найдется хотя бы одно значение M такое, что 0 < M < 1000 . Выведите первые пять найденных чисел и соответствующие им значение M. Если у числа подходящих значений M несколько, то выведите значение M, образованное разностью с минимальным делителем, не равным 1.

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.

 
Пример
Для числа 12 парными делителями являются числа:
2 и 6 (М = 4)
3 и 4 (М = 1)
В ответе необходимо указать значение M = 4, так как полученная разность образованна с минимальным делителем 2.
Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых значение оканчивается на 8. Выведите первые пять найденных чисел
и соответствующие им значения M

Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [1014260; 3025423], простые числа. Выведите первые 20 найденных простых чисел в порядке возрастания, слева от каждого числа выведите его номер по порядку.
 
Пример вывода первых 3 чисел
1 1014263
2 1014287
3 1014301
...

Вам необходимо вывести все числа из указанного диапазона.


 
Дано натуральное число N - количество чисел (1<=N<=103), и натуральные не простые числа ai (1<=ai<=105). Для каждого числа ai выведите его наименьший и наибольший делители, не равные 1, 2, 3 и ai/2, ai/3, ai.  

Входные данные
В первой строке программа получает на вход подается натуральное число N (1<=N<=103). В следующих N строках задаются числа a(100<=ai<=105), каждое число в отдельной строке.

Выходные данные
Для каждого числа ai выведите в отдельной строке два числа через пробел - его  наименьший и наибольший делители, не равные 1, 2, 3 и ai/2, ai/3, ai
 
Примеры
Входные данные Выходные данные
1 5
731
1034
460
618
667
17 43
11 94
4 115
6 103
23 29
Дано натуральное число N - количество чисел (1<=N<=103), и натуральные числа ai (1<=ai<=105). Для каждого числа ai определите наименьшее натуральное число m, меньшее ai, которое имеет максимальное количество различных делителей.

Входные данные
В первой строке программа получает на вход подается натуральное число N (1<=N<=103). В следующих N строках задаются числа a(1<=ai<=105), каждое число в отдельной строке.

Выходные данные
Для каждого числа ai выведите число m - наименьшее натуральное число, меньшее ai, которое имеет максимальное количество различных делителей. Каждое число m необходимо вывести в отдельной строке.
 
Примеры
Входные данные Выходные данные
1 5
440
552
953
53
175
360
360
840
48
120
Для натурального числа N определите четность максимального делителя, не равного N и 1. Выведите через пробел сам максимальный делитель и слово "even", если максимальный делитель четный, и слово "odd" - если нечетный.

Входные данные
На вход подается не простое натуральное число N (1 <= N <= 109).

Выходные данные
Выведите на экран ответ сначала максимальный делитель числа, затем через пробел слово "even", если максимальный делитель четный, и слово "odd" - если нечетный.
 
Примеры
Входные данные Выходные данные
1 9 3 odd
Магазин производит закупку болтов (bolt), гаек (nut), гвоздей (pin), шайб (shim) и винтов (screw), на которую выделена определённая сумма денег. У метизного завода есть в наличии различные модификации этих изделий по розничной цене. При покупке менеджер руководствуется следующими правилами:
  1. Нужно купить как можно больше изделий, независимо от их типа и модификации.
  2. Если можно разными способами купить максимальное количество двух различных изделий, нужно выбрать тот способ, при котором будет куплено как можно больше болтов.
  3. Если можно разными способами купить максимальное количество изделий с одинаковым количеством других товаров, нужно выбрать тот способ, при котором вся покупка будет дешевле.
Определите, сколько всего будет куплено болтов и какая сумма останется неиспользованной.

Входные данные
Программа получает на вход несколько строк. В первой строке расположены два числа через пробел: N - общее количество болтов, гаек, гвоздей, шайб и винтов у метизного завода и M - сумма выделенных на закупку денег (в рублях). Каждая из следующих N строк содержит целое число (цена изделия в рублях) и тип изделия. Все данные в строках отделены одним пробелом.

Выходные данные
В ответе запишите два целых числа: сначала количество закупленных болтов, затем оставшуюся неиспользованной сумму денег. (в одной строке через один пробел)
 
Примеры
Входные данные Выходные данные
1 6 1650
600 screw
750 bolt
750 shim
450 pin
300 nut
150 bolt
2 0
Магазин производит закупку болтов (bolt), гаек (nut), гвоздей (pin), шайб (shim) и винтов (screw), на которую выделена определённая сумма денег. У метизного завода есть в наличии различные модификации этих изделий по розничной цене. При покупке менеджер руководствуется следующими правилами:
  1. Нужно купить как можно больше изделий, независимо от их типа и модификации.
  2. Если можно разными способами купить максимальное количество двух различных изделий, нужно выбрать тот способ, при котором будет куплено как можно больше гаек.
  3. Если можно разными способами купить максимальное количество изделий с одинаковым количеством гаек, нужно выбрать тот способ, при котором вся покупка будет дешевле.
Определите, сколько всего будет куплено гаек и какая сумма останется неиспользованной.

Входные данные
Программа получает на вход несколько строк. В первой строке расположены два числа через пробел: N - общее количество болтов и гаек у метизного завода и M - сумма выделенных на закупку денег (в рублях). Каждая из следующих N строк содержит целое число (цена изделия в рублях) и тип изделия. Все данные в строках отделены одним пробелом.

Выходные данные
В ответе запишите два целых числа: сначала количество закупленных болтов, затем оставшуюся неиспользованной сумму денег. (в одной строке через один пробел)
 
Примеры
Входные данные Выходные данные
1 6 1650
600 screw
750 bolt
750 nut
450 pin
300 nut
150 bolt
2 0
Магазин производит закупку болтов (bolt) и гаек (nut), на которую выделена определённая сумма денег. У метизного завода есть в наличии различные модификации этих изделий по розничной цене. При покупке менеджер руководствуется следующими правилами:
  1. Нужно купить как можно больше изделий, независимо от их типа и модификации.
  2. Если можно разными способами купить максимальное количество изделий, нужно выбрать тот способ, при котором будет куплено как можно больше болтов.
  3. Если можно разными способами купить максимальное количество изделий с одинаковым количеством болтов, нужно выбрать тот способ, при котором вся покупка будет дешевле.
Определите, сколько всего будет куплено болтов и какая сумма останется неиспользованной.

Входные данные
Программа получает на вход несколько строк. В первой строке расположены два числа через пробел: N - общее количество болтов и гаек у метизного завода (1 <= N <= 105) и M - сумма выделенных на закупку денег (в рублях) (1 <= M <= 109). Каждая из следующих N строк содержит целое число (цена изделия в рублях) и тип изделия (bolt - болт, nut - гайка). Все данные в строках отделены одним пробелом.

Выходные данные
В ответе запишите два целых числа: сначала количество закупленных болтов, затем оставшуюся неиспользованной сумму денег. (в одной строке через один пробел)
 
Примеры
Входные данные Выходные данные
1 6 6500
1500 nut
500 nut
3500 bolt
3000 bolt
2500 nut
1000 bolt
2 500
Магазин производит закупку болтов (bolt) и гаек (nut), на которую выделена определённая сумма денег. У метизного завода есть в наличии различные модификации этих изделий по розничной цене. При покупке менеджер руководствуется следующими правилами:
  1. Нужно купить как можно больше изделий, независимо от их типа и модификации.
  2. Если можно разными способами купить максимальное количество изделий, нужно выбрать тот способ, при котором будет куплено как можно больше гаек.
  3. Если можно разными способами купить максимальное количество изделий с одинаковым количеством гаек, нужно выбрать тот способ, при котором вся покупка будет дешевле.
Определите, сколько всего будет куплено гаек и какая сумма останется неиспользованной.

Входные данные
Программа получает на вход несколько строк. В первой строке расположены два числа через пробел: N - общее количество болтов и гаек у метизного завода и M - сумма выделенных на закупку денег (в рублях). Каждая из следующих N строк содержит целое число (цена изделия в рублях) и тип изделия (bolt - болт, nut - гайка). Все данные в строках отделены одним пробелом.

Выходные данные
В ответе запишите два целых числа: сначала количество закупленных гаек, затем оставшуюся неиспользованной сумму денег.
 
Примеры
Входные данные Выходные данные
1 6 6500
1500 bolt
500 bolt
3500 nut
3000 nut
2500 bolt
1000 nut
2 500
В файле приведён фрагмент базы данных "Тестирование учащихся", содержащий информацию о результатах всех попыток тестирования учеников 10-11 классов по различным предметам.
Таблица "Результаты тестирования" содержит записи о набранных баллах каждым учащимся в тестировании по выбранным предметам. Таблица "Школа" содержит информацию о школах и округах, в которых они находятся. Таблица "Предметы" содержит информацию о предметах и предметных циклах.

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

Используя информацию из приведённой базы данных, определите минимальный балл, набранный учащимися 11 класса школы 138 по предметам естественно-научного цикла.

Скачать файл
В файле приведён фрагмент базы данных "Тестирование учащихся", содержащий информацию о результатах всех попыток тестирования учеников 10-11 классов по различным предметам.
Таблица "Результаты тестирования" содержит записи о набранных баллах каждым учащимся в тестировании по выбранным предметам. Таблица "Школа" содержит информацию о школах и округах, в которых они находятся. Таблица "Предметы" содержит информацию о предметах и предметных циклах.

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

Используя информацию из приведённой базы данных, определите максимальный балл, набранный учащимися 11 класса школы 138 по предметам естественно-научного цикла.

Скачать файл
Поделиться
Класснуть