Информатика

4 314 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
В хранилище Васи находится n объектов, пронумерованных от 1 до n, у каждого из которых есть некоторое количество свойств (возможно, ни одного). Каждое свойство представлено в виде натурального числа от 1 до 109.
Проанализировав устройство своего хранилища, Вася решил, что оно должно поддерживать две операции:
 -  Удаление устаревшего свойства c. При удалении свойства, оно удаляется у всех объектов, которым принадлежит. Если указанного свойства не существует, ничего делать не нужно.
 -  Найти количество удаленных свойств у объекта r
Васе очень нужно реализовать эту функциональность, и он обратился к вам за помощью. Помогите ему - напишите программу, которая будет поддерживать обе операции, нужные Васе.

Входные данные
В первой строке входного файле содержится число n - количество объектов в хранилище Васи (1 <= n <= 105). В i-й из следующих n строк содержится описание свойств объекта с номером i: сначала дано число ki - количество свойств у i-го объекта, а затем через пробел даны ki чисел pi,j - свойства i-го объекта (0 <= ki <= 100, 1 <= pi,j <= 109).
Все объекты пронумерованы от 1 до n в порядке, представленном во входных данных. Гарантируется, что общее количество свойств у всех объектов не превосходит 105. Также гарантируется, что для каждого i все pi,j различны.
В n + 2 строке содержится число q - количество запросов к хранилищу Васи (1 <= q <= 105).
В j-й из следующих q строк содержится информация об j-м запросе:
- c, если из хранилища требуется удалить устаревшее свойство c (1 <= c <= 109);
? r, если требуется найти количество оставшихся свойств у объекта с номером r.

Выходные данные
Для всех запросов на нахождение количества оставшихся свойств у объекта, в отдельных строках, в порядке их поступления для каждого запроса выведите это количество.
 
Примеры
Входные данные Выходные данные
1 2
3 1 2 4
3 2 3 5
12
- 1
? 1
? 2
- 2
? 1
? 2
- 5
? 1
? 2
- 6
? 1
? 2
1
0
2
1
2
2
2
2


Замечание
Свойство 1 есть только у первого объекта, поэтому после его удаления у первого объекта 1 удаленное свойство, а у второго все еще 0.
Свойство 2 есть у обоих объектов, поэтому оно удаляется у обоих объектов, у первого объекта теперь 2 удаленных свойства, а у второго 1.
Свойство 5 есть только у второго объекта, поэтому после его удаления у обоих объектов становится 2 удаленных свойства.
Свойства 6 нет ни у одного объекта, поэтому его удаление не меняет количество удаленных свойств у объектов.
 
✓ 2✗ 21 000средняяВойти и решать
В хранилище Васи находится n объектов, пронумерованных от 1 до n, у каждого из которых есть некоторое количество свойств (возможно, ни одного). Каждое свойство представлено в виде натурального числа от 1 до 109.
Проанализировав устройство своего хранилища, Вася решил, что оно должно поддерживать две операции:
 -  Удаление устаревшего свойства c. При удалении свойства, оно удаляется у всех объектов, которым принадлежит.
Если указанного свойства не существует, ничего делать не нужно.
 -  Найти количество оставшихся свойств у объекта с номером r.
Васе очень нужно реализовать эту функциональность, и он обратился к вам за помощью. Помогите ему - напишите программу, которая будет поддерживать обе операции, нужные Васе.

Входные данные
В первой строке входного файле содержится число n - количество объектов в хранилище Васи (1 <= n <= 105). В i-й из следующих n строк содержится описание свойств объекта с номером i: сначала дано число ki - количество свойств у i-го объекта, а затем через пробел даны ki чисел pi,j - свойства i-го объекта (0 <= ki <= 100, 1 <= pi,j <= 109).
Все объекты пронумерованы от 1 до n в порядке, представленном во входных данных. Гарантируется, что общее количество свойств у всех объектов не превосходит 105. Также гарантируется, что для каждого i все pi,j различны.
В n + 2 строке содержится число q - количество запросов к хранилищу Васи (1 <= q <= 105).
В j-й из следующих q строк содержится информация об j-м запросе:
- c, если из хранилища требуется удалить устаревшее свойство c (1 <= c <= 109);
? r, если требуется найти количество оставшихся свойств у объекта с номером r.

Выходные данные
Для всех запросов на нахождение количества оставшихся свойств у объекта, в отдельных строках, в порядке их поступления для каждого запроса выведите это количество.
 
Примеры
Входные данные Выходные данные
1 2
3 1 2 4
3 2 3 5
12
- 1
? 1
? 2
- 2
? 1
? 2
- 5
? 1
? 2
- 6
? 1
? 2
2
3
1
2
1
1
1
1

Замечание
Свойство 1 есть только у первого объекта, поэтому после его удаления у первого объекта остается 2 свойства, а у второго все еще 3.
Свойство 2 есть у обоих объектов, поэтому оно удаляется у обоих объектов, у первого объекта остается 1 свойство, а у второго - 2.
Свойство 5 есть только у второго объекта, поэтому после его удаления у обоих объектов остается 1 свойство.
Свойства 6 нет ни у одного объекта, поэтому его удаление не меняет количество свойств у объектов.
 
✓ 17✗ 42800средняяВойти и решать
Джерримендеринг — разделение территории на избирательные округа неестественным образом с целью искусственного изменения соотношения политических сил в них и, как следствие, в целом на территории проведения выборов. Например, при необходимости обеспечить победу на территории партии X (если от одного избирательного округа избирается один кандидат или один выборщик), нужно всех противников X сосредоточить по округам, где X не сможет выиграть, а всех сторонников X распределить так, чтобы они обеспечивали уверенную победу с небольшим перевесом в нужных округах. Например, в тесте из условия всего за X голосует 10 человек, а против X голосует 15 человек, но, благодаря специальному разделению по округам, X выигрывает в двух избирательных округах из трёх.
В этой задаче избирательная территория представляет собой улицу, на которой в ряд расположены N домов. В i-м доме проживает ai человек, и все они голосуют одинаково: либо за партию X, либо за другую партию. Улицу необходимо разбить на три избирательных округа, от каждого избирательного округа будет избираться один кандидат, и необходимо произвести такую нарезку улицы на три избирательных округа, чтобы минимум в двух округах из трёх выиграл кандидат от партии X. Кандидат от партии X выигрывает, если за него голосует более половины избирателей, проживающих в домах данного избирательного округа. Но чтобы вас не заподозрили в джерримендеринге, необходимо, чтобы каждый избирательный округ представлял собой непрерывный отрезок из номеров домов, то есть сначала вдоль по улице идут дома первого избирательного округа, затем — второго, затем — третьего. Каждый избирательный округ должен содержать как минимум один дом.

Входные данные
Первая строка входных данных содержит целое число N (3 <= N <= 105 ) — количество домов на улице. Следующие N строк содержат по одному целому числу ai (0 < |ai | <= 104 ). Если ai > 0, то в i-м доме проживает ai избирателей, голосующих за кандидата от партии X. Если ai < 0, то в i-м доме проживает |ai | избирателей, голосующих против кандидата от партии X.

Выходные данные
Если возможно разделить N домов на три округа так, что минимум в двух округах выигрывает кандидат от партии X, программа должна вывести в одной строке три целых положительных числа N1, N2, N3, N1 + N2 + N3 = N, соответствующих количеству домов в первом, втором и третьем избирательном округе от начала улицы. При таком разбиении минимум в двух округах из трёх должен выигрывать кандидат от партии X. Если возможно несколько таких разбиений, необходимо вывести любое из них.
Если искомое разбиение не существует, программа должна вывести одно число 0
 
Примеры
Входные данные Выходные данные Пояснение
1 7
-3
-5
3
-4
2
5
-3
4 1 2 На улице расположены 7 домов, избиратели в них распределены так: (−3, −5, 3, −4, 2, 5, −3). Правильный ответ: 4, 1, 2. При таком разбиении в первом округе оказываются 4 дома: (−3, −5, 3, −4). В этом округе за X голосует 3 избирателя, против — 12 избирателей и X разгромно проигрывает. В следующем округе один дом, в котором 2 избирателя голосуют за X, в этом округе X выиграет. В третьем округе два дома: (5, −3), и в этом округе X тоже выиграет. Итого X выигрывает в двух округах.
Незнайка и его друг Гунька играют в игру. Игра состоит из N ходов. На каждом ходу каждый игрок играет одним из двух жестов, Камень и Бумага, как в «Камень-ножницы-бумага», при следующих условиях:
- После каждого хода
(количество раз, когда игрок играл Бумагу) <= (количество раз, когда игрок играл Камень).
- Счет каждого игрока рассчитывается по формуле:
(количество ходов, на которых игрок выигрывает) - (количество ходов, на которых игрок проигрывает),
где результат каждого хода определяется по правилам «камень-ножницы-бумага».

Для тех, кто не знаком с игрой "Камень-нужница-бумага": если один игрок играет Камень, а другой играет Бумагу, последний игрок выиграет, а первый проиграет. Если оба игрока играют одним и тем же жестом, раунд считается ничейным, и ни один из игроков ни выиграет ни проиграет.

Используя волшебную палочку Незнайка смог предвидеть жест, который Гунька будет использовать в каждом из N ходов перед началом игры. Распланируйте жесты Незнайки на каждом шагу, чтобы максимизировать его счет.
Жест, который Гунька будет воспроизводить на каждом ходу, задается строкой s. Если i-й (1 <= i <= N) символ в s равен g, то Гунька будет играть "Камень" на i-м ходу. Аналогично, если i-й (1 <= i <= N) символ s в p, Гунька будет играть Бумага на i-м ходу.

Входные данные
На вход подается одна строка длиной N. Каждый символ в строке s - это g или p. Жесты, представленные s, удовлетворяют условию игры.

Выходные данные
Выведите максимально возможный счет Незнайки.
 
Примеры
Входные данные Выходные данные Пояснение
1 gpg 0 Выполнение одного и того же жеста с противником на каждом этапе дает 0 очков, что является максимально возможным результатом.
2 ggppgggpgg 2 Например, рассмотрите возможность воспроизведения жестов в следующем порядке: Камень, Бумага, Камень, Бумага, Камень, Камень, Бумага, Бумага, Камень, Бумага. Эта стратегия приносит три победы и одно поражение, в результате чего получается 2, что является максимально возможным результатом.
Случилась беда — шпиона Сергея раскрыли, и теперь ему нужно срочно бежать! Но перед побегом он должен удалить все компрометирующие данные со своего компьютера.
На компьютере Сергея сохранены N файлов, пронумерованных числами от 1 до N. У каждого из файлов есть размер в байтах: a1, a2, . . . , aN. Все данные на компьютере Сергея хорошо зашифрованы. Шпион определил, что для удаления файла с номером i понадобится минимум из ai−1 и ai+1 секунд (для удаления первого файла потребуется a2 секунд, а для удаления последнего — aN−1 секунд). Когда остается всего один файл, он удаляется мгновенно. После удаления файла с номером i остальные файлы перенумеровываются последовательно.
У Сергея осталось очень мало времени, а ему еще нужно собрать вещи, поэтому он просит у вас помощи. Определите, какое минимальное время понадобится шпиону, чтобы удалить все файлы.
Сергей может удалять файлы последовательно в любом порядке.

Входные данные
В первой строке выходных данных записано одно целое число N (1 ≤ N ≤ 105) — количество файлов на компьютере шпиона.
В каждой из следующих N строк записано по одному целому числу ai (1 ≤ ai ≤ 104) — размер файла с номером i на компьютере Сергея.

Выходные данные
В единственной строке выведите одно число — минимальное время, которое понадобится Сергею для удаления всех файлов.
 
Примеры
Входные данные Выходные данные
1 5
1
2
3
1
100
4
2 1
1
0

Замечание
В первом примере у Сергея есть файлы с размерами 1, 2, 3, 1, 100. Один из вариантов решения приведен ниже:
1. Удалим последний файл. Это займет одну секунду.
2. Затем удалим файл размера 2 за одну секунду.
3. Далее удалим файл размера 3 за одну секунду.
4. Теперь удалим любой из оставшихся двух файлов за одну секунду.
5. Последний файл моментально удалится сам.
Итого, Сергею понадобится 1 + 1 + 1 + 1 = 4 секунды.
Во втором примере у Сергея изначально есть всего один файл, который сразу же удалится.
 
Однажды после олимпиады по экономике Мише приснился очень красочный и необычный сон.
Мальчик оказался министром финансов Берляндии. Осознав свою значимость, он тут же решил произвести в стране реформу. Раньше в Берляндии использовались банкноты с номиналами 1, 10, 100 и 1 000 бурлей. Мише данная система показалась крайне банальной, поэтому он решил придумать что-то свое.
Мальчик выбрал два целых числа x и y (x ≤ y) и заявил, что теперь в Берляндии будут использоваться только банкноты с номиналами x, x + 1, x + 2, . . . , y бурлей. Вскоре реформа была принята и вступила в силу, однако населению страны это совсем не понравилось. Недовольства начались из-за того, что теперь, используя новые банкноты, можно было набрать далеко не любую сумму.
Например, если Мишей были выбраны числа x = 5 и y = 7, то невозможно набрать суммы 1, 2, 3 и 4 бурлей. Также не получится набрать суммы 8 и 9 бурлей. Если же выбрать числа x = y = 2, то невозможно будет набрать любую нечетную сумму.
Миша, находясь на грани увольнения, решил успокоить население Берляндии и предъявить такое минимальное число N, что при помощи новых банкнот возможно набрать любую сумму, начиная с N. Таким образом, должно быть возможно набрать суммы N бурлей, N + 1 бурлей, N + 2 бурлей, и так далее. Помогите Мише найти искомое число N и избежать увольнения.

Входные данные
В первой строке входных данных записано целое число x — минимальный номинал новых банкнот.
Во второй строке записано целое число y (1 ≤ x ≤ y ≤ 2 · 109 ) — максимальный номинал новых банкнот.

Выходные данные
Выведите одно натуральное число N — минимальное число, такое, что при помощи банкнот с номиналами x, x + 1, x + 2, . . . , y можно набрать любую сумму, начиная с N бурлей. Если такого числа не существует, в качестве ответа выведите −1.

 
Примеры
Входные данные Выходные данные Пояснение
1 5
7
10 Имеются банкноты трех номиналов: 5, 6 и 7 бурлей. Ниже перечислены суммы,
которые можно набрать при помощи данных банкнот:
• 5 = 5,
• 6 = 6,
• 7 = 7,
• 10 = 5 + 5,
• 11 = 5 + 6,
• 12 = 5 + 7,
• 13 = 6 + 7,
• . . .
Можно показать, что при помощи банкнот данных номиналов возможно набрать любую сумму, начиная с 10 бурлей.
2 2
2
-1 Есть банкноты всего одного номинала: 2 бурля. При помощи данных банкнот можно набрать только любую чётную сумму: 2, 4, 6, .... Таким образом, искомого числа N не существует.
3 1900000000
2000000000
36100000000  
В файле приведён фрагмент базы данных "Тестирование учащихся", содержащий информацию о результатах всех попыток тестирования учеников 10-11 классов по различным предметам.
Таблица "Результаты тестирования" содержит записи о набранных баллах каждым учащимся в тестировании по выбранным предметам. Таблица "Школа" содержит информацию о школах и округах, в которых они находятся. Таблица "Предметы" содержит информацию о предметах и предметных циклах.

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

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

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

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

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

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

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

Используя информацию из приведённой базы данных, определите количество учеников 10 класса школ ЦАО, набравших за тестирование по информатике более 90 баллов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Используя информацию из приведённой базы данных, определите средний балл учащихся 10 класса школ ЮЗАО по математике.
В ответе укажите только целую часть среднего балла.

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

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

Используя информацию из приведённой базы данных, определите количество учащихся 10 класса школ ЮЗАО, набравших по математике более 90 баллов.

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

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

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

Скачать файл
Билет на одну поездку в метро стоит 15 рублей, билет на 5 поездок стоит 70 рублей, билет на 10 поездок стоит 125 рублей, билет на 20 поездок стоит 230 рублей, билет на 60 поездок стоит 440 рублей. Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов – минимальна.

Входные данные
Дано одно число n - количество поездок.

Выходные данные
Выведите пять целых чисел, равные необходимому количеству билетов на 1, на 5, на 10, на 20, на 60 поездок. Если для какого-то данного n существует несколько способов приобретения билетов одинаковой стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.

Примеры
Входные данные Выходные данные
1 1 1 0 0 0 0 
Входные данные
В первой строке вводятся три целых числа – N (3≤N≤100000) и координаты точки. Далее в N строках задается по паре целых чисел – координаты очередной вершины простого многоугольника в порядке обхода по или против часовой стрелки.

Выходные данные
Выведите  одну строку: “YES”, если заданная точка содержится в приведённом многоугольнике или на его границе, и “NO” в противном случае.
 
Примеры
Входные данные Выходные данные
1 3 2 3
1 1 
10 2
2 8
YES
Входные данные
Семь чисел – координаты центра и радиус окружности (возможно, вырожденной) и вещественные координаты двух точек на ней, с точностью до пятого знака после запятой.

Выходные данные
Одно число – длина меньшей дуги окружности, заключённой между указанными точками.
 
Примеры
Входные данные Выходные данные
1 0 0 1 0 1 1 0 1.57080
Поделиться
Класснуть