Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распространение файла на всю сеть, Ещё задача с олимпиады 
:(
    Опции темы
pompei
Дата 13.12.2007, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.9.2007

Репутация: нет
Всего: 6



Такая задача:

Суть задачи: имеется компьютерная сеть из N пронумерованных компьютеров, некоторые компьютеры соединены между собой. В сети нет двух компьютеров, которые бы не были соединены хотябы через промежуточные (условие "Ы"). На указанном компьютере есть файл. Один компьютер одновременно может копировать файл только на один другой компьютер, с которым соединён. Время копирования файла - 1 минута. Необходимо скопировать этот файл на все компьютеры сети за минимальное количество времени. Задержки между операциями копирования не учитывать.

Входные данные: файл, в первой строчке которого содержиться два числа, разделённые пробелом: первое - количество компьютеров в сети, второе - номер компьютера, на котором содержиться файл изначально. Остальные строчки содержат по два числа, разделённых пробелом - эти пары чисел обозначают номера соединенных компьютеров. Известно что этот файл определяет сеть, удовлетворяющую условию "Ы". Нумерация компьютеров начинается с 1.

Выходные данные: файл, в последней строчке число - общее количество минут. В остальных строчках содержаться тройки чисел разделённых пробелом. Первое число указывает минуту с начала процесса копирования (первая минута - 1, вторая минута - 2). Второе число указывает номер компьютера, с которого файл копируется. Третье число указывает номер компьютера, на который производиться копирование файла. Если, например, в третью минуту три пары компьютеров производят копирование, то файл должен содержать три строки, у которых первое число будет 3.

Требуется: написать программу, которая по входному файлу получает выходной файл.

ЗЫ. На олимпиаде было дано ограничение на максимальное количество компьютеров в сети (точно не помню, но кажеться 64). Нужно попытаться без этого ограничения.

Пример:

Имеется сеть (звёздочкой обозначен компьютер, где изначально находиться файл):
Код


  +-----+    +-----+    +-----+    +-----+    +-----+
  |     |    |   * |    |     |    |     |    |     |
  |  1  |----|  2  |----|  3  |----|  4  |----|  5  |
  |     |    |     |    |     |    |     |    |     |
  +-----+    +-----+    +-----+    +-----+    +-----+
                |          |
                |          |
                |          +---------------------+
                |                                |
                |                                |
  +-----+    +-----+    +-----+    +-----+    +------+
  |     |    |     |    |     |    |     |    |      |
  |  6  |----|  7  |----|  8  |----|  9  |----|  10  |
  |     |    |     |    |     |    |     |    |      |
  +-----+    +-----+    +-----+    +-----+    +------+


Входной файл:
Код

10 2
1 2
2 3
3 4
4 5
6 7
7 8
8 9
9 10
2 7
3 10


Выходной файл:
Код

1 2 3
2 3 10
2 2 7
3 7 8
3 10 9
3 2 1
3 3 4
4 4 5
4 7 6
4


Это сообщение отредактировал(а) pompei - 13.12.2007, 07:15
--------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.0703 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.