IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на логику
Tenshi
сообщение 22.05.2008 9:21
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской
Реальное имя: Artem

Репутация: -  0  +


В парламенте острова Невезения каждый из N = 6 депутатов имеет не более М = 2 врагов. ( Если А - враг Б, то Б - враг А). Для уменьшения разногласий президент решил преобразовать парламент в двухпалатный.
Составить программу, которая проверяет, можно ли парламент разделить на две палаты так, что быу каждого депутата в своей палате было не более М врагов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 23.05.2008 10:59
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


const
n = 6;
type
TEnemies = set of byte;
TRelationship = array [1..n] of TEnemies;

function Intersect(const i, j, k: byte; const
iSet, jSet, kSet: TEnemies): boolean;
begin
Intersect := (i in jSet + kSet) or (j in iSet + kSet) or (k in iSet + jSet);
end;

var
r: TRelationship = (
([]), // враги первого (пусто в данном случае)
([4]), // враги второго
([4, 5]), // 3
([3, 2]), // 4
([3]), // 5
([]) // 6
);

i, j, k, l, id: byte;
idx: array [1..3] of byte;

begin
for i := 1 to n - 2 do
for j := i + 1 to n - 1 do
for k := j + 1 to n do
if not Intersect(i, j, k, r[i], r[j], r[k]) then begin
id := 0;
for l := 1 to n do
if (l <> i) and (l <> j) and (l <> k) then begin
inc(id); idx[id] := l;
end;
if not Intersect(idx[1], idx[2], idx[3], r[idx[1]], r[idx[2]], r[idx[3]]) then
writeln('Group A: (', i, ',', j, ',', k,
') Group B: (', idx[1], ',', idx[2], ',', idx[3], ')');
end;
end.


Сообщение отредактировано: klem4 - 23.05.2008 11:04


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Tenshi   Задача на логику   22.05.2008 9:21
Michael_Rybak   ну и что теперь? я тоже много задач знаю. в том чи...   22.05.2008 12:05
Tenshi   Хотел спросить совета как мне ее решить. Можно и п...   22.05.2008 13:04
trew   теорию вероятности выучи тогда и помощи не надо бу...   22.05.2008 13:16
Michael_Rybak   можно, конечно можно! давай повежливее, тольк...   22.05.2008 13:40
Tenshi   Писал с компа в универе. Успел написать тока услов...   22.05.2008 13:55
klem4   Если у второго во врагах третий, то у третьего п...   22.05.2008 14:05
Tenshi   Второго заносим в другую палату, соответственно в ...   22.05.2008 14:11
klem4   Таак. Смотри: Если у 1 есть враг 3, это означае...   22.05.2008 14:26
Tenshi   Не более 2 врагов на рыло, если два, то они спокой...   22.05.2008 14:33
klem4   Опять не верно, первый с третьим не могут быть в о...   22.05.2008 14:58
Tenshi   Стоп, ты не так понял. У каждого из депутатов в св...   22.05.2008 15:13
klem4   если у первого враг - третий, это означает автомат...   22.05.2008 15:22
Tenshi   если у первого враг - третий, это означает автома...   22.05.2008 15:31
Michael_Rybak   в этой задаче она не понадобится. смотри. у теб...   22.05.2008 15:34
Tenshi   Мое огромнейшее спасибо :good:   22.05.2008 15:39
Tenshi   is_enemy[a, b] Непонятно как они задают...   22.05.2008 16:36
Michael_Rybak   ой. только я ошибся - там не break а continue везд...   22.05.2008 18:09
Tenshi   А как будет вывод найденного решения выглядеть?   22.05.2008 21:52
Tenshi   program omg; type enemy= set of 'a'.....   22.05.2008 23:05
Michael_Rybak   я предполагал, что is_enemy = true тогда и только ...   23.05.2008 2:25
Tenshi   переработанный код, но фсе равно не рабочий =( pr...   23.05.2008 7:02
klem4   const n = 6; type TEnemies = set of byte; TR...   23.05.2008 10:59
Tenshi   Всем Спасибо. За курсовую получил максимум, хоть и...   23.05.2008 11:13


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"