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

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

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

> Задача "Казино", Дилер - жулик
_Mystery_
сообщение 21.05.2006 17:01
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский

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


Помогите с задачей на массивы
Расположить по порядку.
В большом городе много казино. В одном из них дилер жульничает. Она довела до совершенства несколько перетасовочных трюков; каждый трюк меняет порядок карт одним и тем же образом, когда бы он ни был использован. Простой пример – это трюк «нижней карты», при котором нижняя карта переносится наверх колоды. Используя различные комбинации известных ей трюков, нечестный дилер может расположить карты практически в любом желаемом порядке.
Вы были наняты менеджером службы безопасности, чтобы поймать этого дилера. Вам дали список всех трюков, используемых дилером, а также список визуальных подсказок, благодаря которым вы можете определить, какой трюк она использует в любой данный момент времени. Ваша задача состоит в том, чтобы предсказать порядок карт после последовательности трюков.
Стандартная игральная колода состоит из 52 карт, четыре масти по 13 значений каждая. Значения карт:2, 3, 4, 5, 6, 7, 8, 9, 10, Валет (Jack), Дама (Queen), Король(King), Туз (Ace). Названия мастей: Трефы (Clubs), Бубны (Diamonds), Червы(Hearts), Пики (Spades). Определенная карта в колоде может быть однозначно определена по ее значению в порядке, описанном выше.
Входные данные.
Входные данные начинаются со строки, содержащей 1 положительное целое число, которое означает количество тестовых блоков, за которой следует пустая строка. Между двумя последовательными тестовыми блоками также находится пустая строка.
Каждый блок состоит из целого числа n<=100 – числа трюков, которые знает дилер. Далее следует n наборов по 52 целых числа, каждый из которых содержит все числа от 1 до 52 в определенном порядке. Внутри каждого набора из 52 чисел, если i стоит j-м по счету, то это значит, что трюк перемещает i-ю карту в колоде j-ое место.
Далее следует несколько строк, каждая из которых содержит целое число k от 1 до n. Оно означает, что вы увидели, как дилер делает k-й трюк, заданный во входных данных.
Выходные данные.
Для каждого тестового блока считайте, что дилер начинает с новой колоды, карты в которой расположены в порядке, описанном выше. Выведите новый порядок карт в колоде, после того как все трюки были проделаны.
Для двух последовательных блоков должны быть разделены пустой строкой.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
virt
сообщение 23.05.2006 8:59
Сообщение #2


Знаток
****

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

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


 program kazino;
var p : array[1..52] of byte;
n : array[1..52] of byte;
i ,j : integer;

begin
assign(input, '_mystery_.in');reset(input);
for i := 1 to 52 do p[i] := i;
while not eof do
begin
for i := 1 to 52 do
begin
read(j);
n[i] := j;
end;
for i := 1 to 52 do
p[i] := n[i];
end;
for i := 1 to 52 do write(p[i], ' ');
end.

Может так?
Считаем что тестовый блок 1 и количество трюков равно количеству строк.

Сообщение отредактировано: volvo - 2.11.2006 2:31


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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