Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Раскраска карты

(Время: 1 сек. Память: 16 Мб Сложность: 52%)

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

Входные данные

Первая строка входного файла INPUT.TXT содержит натуральное число N – количество стран на карте (N ≤ 20). В следующих N строках располагается матрица смежности: каждая (i+1)-я строка содержит разделенные пробелом N цифр – информацию о смежных государствах i-й страны. В (i+1)-й строке в j-й позиции записана цифра 1, если страны с номерами i и j имеют общую границу и 0 – в противном случае. Страны нумеруются от 1 до N. Гарантируется, что такое расположение стран возможно отобразить на плоскости.

Выходные данные

В выходной файл OUTPUT.TXT выведите N целых чисел от 1 до M – цвета стран после раскраски. Здесь M – минимально возможное количество цветов, необходимых для раскраски. Если возможных вариантов раскраски несколько, выведите любой из вариантов.

Примеры

INPUT.TXTOUTPUT.TXT
13
0 1 0
1 0 0
0 0 0
1 2 1
217
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0
0 0 0 1 1 1 0 1 1 0 1 1 1 0 0 0 0
0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0
0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1
0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1
0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 1
0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0
1 2 1 1 1 2 3 1 2 3 1 2 1 2 1 2 3

Система оценки

Решения, использующие раскраску в два цвета и менее, будут оцениваться в 50 баллов.


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 Тренировочные олимпиады
 Введение
 Условный оператор
 Операторы цикла
 Строковые типы данных
 Массивы
 Функции
 Сортировка
 Двумерные массивы
 Рекурсия
 Рекурсия - 1
 Рекурсия - 2
 A. Разворот
 B. Числа Фибоначчи
 C. Перестановки
 D. Функция - 2
 E. Формула
 F. Задача о рюкзаке
 G. Сумма двух чисел
 H. Раскраска карты

Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru