|  DIPLOMAT | На конференцию приглашены по одному дипломату из N разных стран мира. Каждый дипломат знает не менее одного языка. Дипломаты, которые не знают общего языка не могут разговаривать друг с другом. К тому же некоторые страны заявили, что не будут поддерживать дипломатических отношений с некоторыми другими странами, то есть представители этих стран не будут разговаривать друг с другом. Эти условия представлены текстовым файлом DIPLOMAT.DAT такого вида: -
В первой строке - число N. -
Далее N строк, по одной строке на дипломата. Каждая строка - последовательность слов. Соседние слова разделены пробелом. Каждое слово - это последовательность больших латинских букв. Первое слово, код страны, состоит из трех букв. Второе слово представляет перечень языков, на которых может общаться дипломат. Каждый язык обозначен одной буквой. -
Далее идет список из не более чем N трехбуквенных слов - кодов стран, с которыми правительство дипломата поддерживает отношения. (N<=12). Составьте программу DIPLOMAT, результат работы которой: -
Для данного языка L подсчитать количество дипломатов, владеющих эти языком. (2 балла) -
Для данной страны C подсчитать количество дипломатов, которые не могут общаться с дипломатом этой страны. (6 баллов) -
Определить общее количество языков на конференции. (4 балла) -
Определить наиболее "популярный" язык конференции, то есть язык, которым владеет наибольшее количество дипломатов. (6 баллов) -
Определить самого "несговорчивого" дипломата, то есть дипломата, который может общаться с наименьшим количеством коллег. (8 баллов) -
Для данных трех стран X, Y и Z выяснить, могут ли дипломаты этих стран образовать комитет так, чтобы каждый из трех дипломатов мог общаться с двумя другими. (4 балла) -
Распределить всех дипломатов по комитетам из трех членов (если это возможно), на условиях п. 6, при дополнительном условии, что каждый дипломат обязательно должен попасть только в один комитет. (15 баллов) -
Определить места за столом для дипломатов таким образом, чтобы каждый мог разговаривать с обоими своими соседями, которые сидят слева и справа от него. Используемый стол - круглый и рассчитан на N персон. Дипломат может общаться с дипломатом, сидящим слева на одном языке, а с дипломатом, сидящим справа - на другом. Если возможно существование нескольких решений, то необходимо найти одно из них. (30 баллов) Технические характеристики: Входные данные: Кроме файла DIPLOMAT.DAT, данные для задачи содержатся в файле KONF.DAT такого формата: Первая строка содержит одну букву - язык L (для п.1); Вторая строка содержит слово из трех букв - код страны C (для п.2); Третья строка содержит три кода стран X, Y, Z, разделенных пробелами (для п.6). Выходные данные: В файл STAT.SOL требуется вывести результаты п.п. 1-7 в таком формате: В первую строку - одно число - ответ на п.1. Во вторую строку - одно число - ответ на п.2. В третью строку - одно число - ответ на п.3. В четвертую строку - букву, которая обозначает язык из п.4, а также, после пробела, число - количество дипломатов, владеющих этим языком. В пятую строку - код страны дипломата из п.5. В шестую строку - букву Y, если ответ на вопрос п.6 положителен, или букву N, если отрицателен. В седьмую строку вывести букву N, если распределение из п.7 невозможно, или букву Y, если возможно, тогда в следующих строках вывести по три кода стран, образовавших комитеты, разделенные пробелами: по одному комитету на строку. Если ответ на некоторый пункт задания не найден, то соответствующая строка файла STAT.SOL должна быть пустой В файл DIPLOMAT.SOL необходимо вывести решение для п.8 - список дипломатов в порядке размещения за столом (по одному дипломату в строке). Каждая строка состоит из трех слов: -
первое - код языка, на котором дипломат может общаться с соседом слева; -
второе - код страны дипломата; -
третье - код языка, для общения с соседом справа. Если решения нет, то программа должна выводить в единственную строку файла DIPLOMAT.SOL такое сообщение: NO SOLUTION EXISTS Пример: DIPLOMAT.DAT 4 USA EF FRA UKR FRA FJU USA JPN UKR JPN JE FRA UKR UKR JURE USA JPN KONF.DAT J UKR USA UKR JPN STAT.SOL 3 0 5 J 3 USA N N DIPLOMAT.SOL E USA F F FRA J J JPN E E UKR E |