Пользователь сети Интернет подписан на несколько разных списков рассылки, которые высылают ему по электронной почте сообщения на определенные темы. Для удобства пользователь создал себе набор папок, каждая из которых соответствует одной из тем. Перед тем, как читать сообщения он копирует их в соответствующую папку.
Почтовая программа, установленная на компьютере пользователя, позволяет за одну “операцию” переносить из “списка новых сообщений” в соответствующую папку:
Пусть пользователь подписан на рассылки анекдотов, веселых историй, спортивных новостей и прогноза погоды. Пусть “список новых сообщений” при некотором вхождении в почтовую программу имел следующий вид: (Анекдоты, Спортивные новости, Прогноз погоды, Спортивные новости, Веселые истории, Веселые истории, Спортивные новости)
| Список папок |
|
| Список новых сообщений |
1 | Анекдоты |
| 1 | Анекдоты |
2 | Веселые истории |
| 3 | Спортивные новости |
3 | Спортивные новости |
| 4 | Прогноз погоды |
4 | Прогноз погоды |
| 3 | Спортивные новости |
|
|
| 2 | Веселые истории |
|
|
| 2 | Веселые истории |
|
|
| 3 | Спортивные новости |
Переносить сообщения в папки он может следующим образом: сначала два сообщения на тему “Веселые истории”. Тогда он получит следующий список: (Анекдоты, Спортивные новости, Прогноз погоды, Спортивные новости, Спортивные новости). Потом перенести сообщения о прогнозе погоды, после этого “Анекдоты”, а потом, одновременно, все три сообщения о спортивных новостях. На это он потратит 4 “операции”.
Напишите программу которая будет вычислять минимальное количество “операций”, с помощью которых можно перенести все новые сообщения в папки. Для удобства каждой теме присваивается номер.
Единственная строчка входного файла содержит число N (0<N<200), отвечающее количеству новых сообщений и N целых чисел, которые соответствуют сообщениям, и являются номерами тем, которым эти сообщения принадлежат.>
В первой строке выходного файла должно находиться минимальное число операций для данных, приведенных во входном файле.
7 1 3 4 3 2 2 3
4
В стране Виртуляндии очень популярна следующая головоломка. Таблица состоит из M+1-й строчки. Первые M строк зеленые, а последняя, M+1-я, строка — синяя. Каждая строчка состоит из N чисел, каждое из которых — целое число из диапазона 0..P-1 включительно. Возможное действие при решении головоломки — прибавить зеленую строку к синей покомпонентно, при этом каждое число в синей строке, большее P-1, уменьшается на P. Головоломка считается решенной, если синяя строчка состоит только из нулей.
Напишите программу , решающую описанную головоломку.
Первая строка файла содержит натуральное число — количество тестов в файле. Первая строка каждого теста содержит числа P,N,M (1N,M100, 2P255). Следующие M строк содержат по N чисел — зеленые строчки. Следующая строка из N чисел — синяя строчка.
Текстовый файл должен содержать ответ на каждый тест в отдельной строке. Ответ — это число 0, если не удалось решить головоломку. Если же головоломку решить удалось, то ответ — число 1 і в этой же строке N чисел — для каждой зеленой строчки сколько раз ее нужно прибавить к синей.>
2 4 2 2 2 2 2 2 3 3 3 2 4 1 0 2 0 0 0 0 1 2 1
0 1 1 0 0 2
Дана последовательность, состоящая из 2N натуральных чисел. Известно, что все числа этой последовательности можно разбить на пары таким образом, что сумма чисел во всех парах будет одинаковой. Например, числа последовательности 99, 23, 77, 1 можно разбить на пары 1+99=77+23.
Напишите программу, которая по такой последовательности определяет, можно ли эту последовательность разбить на пары таким образом, чтобы произведение чисел во всех парах было одинаковым.
Файл содержит данные нескольких тестов. Первая строка содержит натуральное число - количество тестов в файле. Первая строка каждого теста содержит число 2N — количество чисел в последовательности. В каждой из последующих 2N строчек содержится целое число от 1 до 109 — элементы последовательности (1≤N≤ 50000)
Файл должен содержать ответ на каждый из тестов в отдельной строке. Ответом на тест является символ 1, если входную последовательность можно разбить на пары, произведения в которых были бы одинаковыми, и 0 в противном случае.
2 4 99 23 77 1 2 1 10101
0 1
Служебный автобус совершает один рейс по установленному маршруту и в случае наличия свободных мест подбирает рабочих, которые ожидают на остановках, и отвозит их на завод. Автобус также может ждать на остановке рабочих, которые еще не пришли. Известно время прихода каждого рабочего на свою остановку и время проезда автобуса от каждой остановки до следующей. Автобус приходит на первую остановку в нулевой момент времени. Продолжительность посадки рабочих в автобус считается нулевой.
Напишите программу, которая определит минимальное время, за которое автобус привезет максимально возможное количество рабочих.
Входной текстовый файл в первой строке содержит количество остановок N и количество мест в автобусе M. Каждая i-я строчка из последующих N строчек содержит целое число — время движения от остановки і к остановке i+1 (N+1-я остановка — завод), количество рабочих K, которые придут на i-ю остановку, и время прихода каждого рабочего на эту остановку в порядке прихода (1M2000, 1N,K200000).
Единственная строка выходного текстового файла должен содержать минимальное время, необходимое для перевозки максимального количества рабочих.
3 5 1 2 0 1 1 1 2 1 4 0 2 3 4
4
На планете Олимпия очень популярна такая головоломка. На столе последовательно лежат N стопок разноцветных карточек. За один ход можно снять верхние карточки одного цвета с произвольного количества размещенных рядом стопок.
Напишите программу, которая будет вычислять минимальное количество ходов, необходимое для того, чтобы снять все карточки на столе.
Входной текстовый файл в первой строке содержит количество стопок N≥2. Каждая i-я строка из последующих N строк содержит количество карточек K≥1 в і-й стопке и последовательность из K натуральных чисел, которые определяют цвета карточек в і-й стопке, начиная с самой нижней (1≤N*K≤10000).
Единственная строка выходного текстового файла должна содержать минимальное количество ходов T.
2 2 1 2 3 3 1 2
3