Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Matvexa
0 / 0 / 1
Регистрация: 09.11.2008
Сообщений: 9
1

Пирамида Хеопса

17.11.2008, 18:17. Просмотров 1199. Ответов 2
Метки нет (Все метки)

Внутри пирамиды Хеопса есть N комнат, в которых установлены 2М модулей, составляющих М устройств. каждое устройство состоит из двух модулей, которые располагаются в разных комнатах, и предназначено для перемещения между парой комнат, в которых установлены эти модули. Перемещение происходит за 0.5 условных единицы времени. В начальный момент времени модули всех устройств переходят в "подготовительный режим". Каждый из модулей имеет некоторый свой целочисленный период времени, в течение которого он находится в "подготовительном режиме". По истечении этого времени модуль мгоновенно "срабатывает" после чего опять переходит в "подготовительный режим". Устройством можно воспользоваться только в тот момент, когда одновременно "срабатывают" оба его модуля.

Индиана Джонс сумел проникнуть в гробницу фараона (комната 1). Обследовав ее, он включил устройства и собрался уходить, но в этот момент проснулся хранитель гробницы. Теперь Джонсу необходимо как можно быстрее попасть в комнату N, в которой находится выход из пирамиды. При этом из комнаты в комнату он может попадать только при помощи устройств, так как проснувшийся хранитель закрыл все двери в комнатах пирамиды.

Необходимо написать программу, которая получает на входе описания расположения устройств и их характеристик (смотри описание формата ввода), а выдает значение оптимального времени и последовательность устройств, которыми надо воспользоваться, что бы попасть из комнаты 1 в комнату N за это время.
Формат ввода:

N
M
R11 T11 R12 T12
...
RM1 TM1 RM2 TM2

где

N (2<=N<=100) - количество комнат
M (M<=100) - количество устройств
Ri1 и Ri2 - номера комнат, в которых располагаются модули устройства i
Ti1, Ti2 (Ti1,Ti2<=1000) - периоды времени, через которые срабатывают эти модули
Все числа - натуральные.

Пример ввода

4
5
1 5 3 2
1 1 2 1
2 5 3 5
4 4 3 2
3 5 4 5

Пример вывода

Оптимальное время: 8.5
искомая последовательность: 2 3 4
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2008, 18:17
Ответы с готовыми решениями:

Пирамида чисел
Помогите пожалуйста. Задача такова, в зависимости от числа строк вывести числа....

Пирамида
Напишите конструирующую программу для пирамиды

пирамида
В треугольной пирамиде 2 боковые грани перпендикулярны к плоскости основания и...

Пирамида
Почему печатает 11 строк а не 20 ведь указано что i&lt;=20? #include...

ПИРАМИДА
Расположите на форме 7 компонентов Tpanel так, чтобы получилась разноцветная...

2
MadMag
(Yellow_Duck)
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
17.11.2008, 22:27 2
Если пишешь олимпиадные задачи, будь добр, напиши, что ты сам сделал, или хотя бы как думаешь делать
0
Matvexa
0 / 0 / 1
Регистрация: 09.11.2008
Сообщений: 9
18.11.2008, 00:11  [ТС] 3
Лучший ответ Сообщение было отмечено Matvexa как решение

Решение

Ну для кого олимпиадные, а для кого и нет!!! Это мы проходим по предмету Алгоритмические языки программирования))) И это задача считается средней сложности))))

Завтра выложу примерно с чего начинали)

Добавлено через 46 минут 11 секунд
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Program Piramid;
 
Const
   Free:=1;
   Done:=1;
 
Var
   G:array[1..100,1..100] of byte;
   P:array[1..100,1..100] of longint;
   D:array[1..100] of single;
   Labl, pred, kg:array[1..100] of byte;
   path:array[1..100] of byte;
   is,t1,t2,nok,tres,NewTime:longint;
   i,j,x,y,a,b,c,n,m,tg,Bliz:byte;
   r1,r2:byte;
   Yes:boolean;
   MinD:single;
 
function Nod(a,b:longint):longint;
begin
   while(a<>b) do
      if a>b 
         then a:a-b;
         else b:=b-a;
   Nod:=a;
   end;
 
function Calcut(T:Single; TNok:longint):longint;
var
   i:longint;
begin
   TRes:=0;
   while (T>TRes) do inc(TRes,TNok);
   Calcut:=Tres;
   end;
основной модуль выложу завтра, если кому интересно)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2008, 00:11

Пирамида
как перевернуть Пирамиду? Чтобы высота была в начале координат?CCube Cube;...

пирамида
Найти V пирамиды, ограниченной координатными осями и плоскостью 3х - 2у + 4z +...

пирамида
помогите мне надо начертить пирамиду с 6 сторон и 7 граней... как это вообще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru