Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
2 / 2 / 3
Регистрация: 01.03.2012
Сообщений: 40
1

Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле

28.10.2013, 12:18. Просмотров 4527. Ответов 22
Метки нет (Все метки)

У Пети имеется игровое поле размером 3×3 , заполненное числами от 1 до 9. В начале игры он может поставить фишку в любую клетку поля. На каждом шаге игры разрешается перемещать фишку в любую соседнюю по стороне клетку, но не разрешается посещать одну и ту же клетку дважды. Петя внимательно ведет протокол игры, записывая в него цифры в том порядке, в котором фишка посещала клетки. Пете стало интересно, какое максимальное число он может получить в протоколе. Помогите ему ответить на этот вопрос.

Формат входных данных

Входной файл содержит описание поля — 3 строки по 3 целых числа, разделенных пробелами. Гарантируется, что все девять чисел различны и лежат в диапазоне от 1 до 9.
Формат выходных данных

Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле. Ответ можно выводить не в виде числа, а в виде строки или в виде последовательности отдельных цифр (но не разделяя их пробелами).
Пример

Ввод
1 2 3
4 5 6
7 8 9
Вывод
987456321
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2013, 12:18
Ответы с готовыми решениями:

Гость из прошлого. Выведите одно целое число — максимальное количество литров кефира, которое сможет выпить Коля
Коля Герасимов очень любит кефир, и в своём 1984 году он освоил все тонкости покупки этого...

Найти максимальное число, которое может получиться в результате удаления ровно одной двоичной цифры
Помогите решить задачу: У Маленького Слоника есть целое число a, записанное в двоичной системе...

Указать то целое число и его порядковый номер при вводе, которое в двоичном представлении имеет наибольшее число единиц
Надо здавать задачу в универ :rtfm:, сколько ни сидел не получаеться:wall:. Пожалуйста напишите...

Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле
У пети имеется игровое поле размером 3х3, заполненное числами от 1 до 9. В начале игры он может...

22
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
16.06.2015, 23:49 2
Помогите, пожалуйста)
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
17.06.2015, 10:55 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
36
37
38
39
40
41
42
43
44
45
46
Type tAr = array[1..3,1..3] of Byte;
Var          { 987456321 987236145 897236145 987236145 }
  m   : tAr := ((1,2,3),
                (4,5,6),
                (7,8,9)); 
             { ((1,6,3),
                (4,7,2),
                (5,8,9)); }
             { ((1,6,3),
                (4,7,2),
                (5,9,8)); }
             { ((1,6,3),
                (4,9,2),
                (5,8,7)); }
  i,j,k,n : Byte;
 
Function MaxSt(s1,s2 : String) : String;
Begin
  If Length(s1)=Length(s2) then
    If s1>s2 then MaxSt:=s1 else MaxSt:=s2
  else
    If Length(s1)>Length(s2) then MaxSt:=s1 else MaxSt:=s2;
end;
 
Function Path(x,y : Integer; mm : tAr) : String;
Var b    : Char;
Begin
  If (x in [1..3]) and (y in [1..3]) and (mm[x,y]>0) then
  Begin
    b:=Chr(Ord('0')+mm[x,y]);
    mm[x,y]:=0;
    Path:=b+MaxSt(MaxSt(Path(x-1,y,mm),Path(x+1,y,mm)),MaxSt(Path(x,y-1,mm),Path(x,y+1,mm)));
  end
  else Path:='';
end;
 
Begin
  k:=1; n:=1;
  For i:=1 to 3 do
   For j:=1 to 3 do
     If (m[i,j]>m[k,n]) and (not ((i+j) in [3,5])) then
     Begin
       k:=i; n:=j;
     end;
  Writeln(Path(k,n,m));
end.
1
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 22:33 4
Спасибо огромное! Только вот на эту строчку программа ругается)
Pascal
1
2
3
m   : tAr := ((1,2,3),
                (4,5,6),
                (7,8,9));
0
Модератор
Эксперт по электронике
6986 / 3483 / 1375
Регистрация: 01.02.2015
Сообщений: 10,929
Записей в блоге: 1
17.06.2015, 22:38 5
Pascal
1
  m   : tAr = ((1,2,3),
2
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 22:41 6
Все равно ругается. Требует ;
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
17.06.2015, 22:47 7
Цитата Сообщение от tata2412 Посмотреть сообщение
Все равно ругается. Требует ;
Не должно. Я сейчас специально проверил - да, во FreePascal надо "=" без двоеточия, но после исправления все нормально компилируется.
0
Миниатюры
Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле  
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 22:55 8
Мне ведь нет смысла врать) Вы же мне помогаете...

(Ссылка на сторонний ресурс удалена, контент перенесён на форум)

Название: Bezimyanni_6726110_17714663.jpg
Просмотров: 50

Размер: 2.5 Кб
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
17.06.2015, 22:57 9
tata2412, Ваш скриншот не читабелен, но что-то мне подсказывает, что:
1. Это не FreePascal, в разделе которого Вы запостили тему.
2. Вы могли ошибиться, случайно стерев где нибудь ";"
3. Или, исходя из п.1, Ваш компилятор не позволяет присваивать начальные значения массиву на стадии его объявления.
0
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 23:00 10
Вот тест, который не прошла программа....

(Ссылка на сторонний ресурс удалена, контент перенесён на форум)

Выведите одно целое число — максимальное число, которое могло получиться в протоколе при игре на данном поле
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
17.06.2015, 23:00 11
Кстати, по правилам форума картинки надо прикреплять к сообщению, а не выкладывать ссылку на скрин на стороннем хосте.
0
Модератор
Эксперт по электронике
6986 / 3483 / 1375
Регистрация: 01.02.2015
Сообщений: 10,929
Записей в блоге: 1
17.06.2015, 23:00 12
Цитата Сообщение от APALoff Посмотреть сообщение
1. Это не FreePascal, в разделе которого Вы запостили тему.
Если это BorlandPascal for Windows, то замените
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const          { 987456321 987236145 897236145 987236145 }
  m   : tAr := ((1,2,3),
                (4,5,6),
                (7,8,9)); 
             { ((1,6,3),
                (4,7,2),
                (5,8,9)); }
             { ((1,6,3),
                (4,7,2),
                (5,9,8)); }
             { ((1,6,3),
                (4,9,2),
                (5,8,7)); }
var
  i,j,k,n : Byte;
Но только если это Borland
0
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 23:01 13
Да, Вы правы. У меня Паскаль ABC...
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
17.06.2015, 23:01 14
Я "пас".


Модеры, перенесите тему в ABC.
0
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 23:03 15
В любом случае, спасибо Вам за помощь!
0
Модератор
Эксперт по электронике
6986 / 3483 / 1375
Регистрация: 01.02.2015
Сообщений: 10,929
Записей в блоге: 1
17.06.2015, 23:14 16
Но ведь тесты на mccme проходят на FPC. Просто ТС должен работать дома соответствующим инструментом.

Добавлено через 9 минут
APALoff, подскажите, что за дополнительное условие and (not ((i+j) in [3,5])) в строке 41.
Понял - необходимое условие однократного прохода по всем клеточкам - исключение 4 клеток для начальной клетки.

tata2412, а вы используете программу без изменений?
0
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 23:16 17
Без изменений...
0
1642 / 1071 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
17.06.2015, 23:17 18
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
APALoff, подскажите, что за дополнительное условие and (not ((i+j) in [3,5])) в строке 41.
Это выбор начальной точки, не лежащей на боковой грани в центре, иначе решение будет заведомо неправильным, т.к. не сможем обойти все 9 точек.
1
Модератор
Эксперт по электронике
6986 / 3483 / 1375
Регистрация: 01.02.2015
Сообщений: 10,929
Записей в блоге: 1
17.06.2015, 23:21 19
tata2412, вы ошибаетесь в таком решении.

Дело в том, что нужно читать способы ввода и вывода.

Это форум. Здесь решат многие задачи, но редко будут доводить код до требований системы проверки или преподавателя. Принцип: помогли с алгоритмом и куском кода - уже хорошо.

Ну в общем - вы поняли - приводите ввод/вывод в соответствие с требованиями сайта mccme.
0
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 25
17.06.2015, 23:22 20
Да, спасибо всем огромное!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2015, 23:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Выведите одно число-количество деталей, которое может получиться по заданной технологии
Имеется N кг металлического сплава.Из него изготавливают заготовки массой K кг каждая.Поле этого из...

Во входном файле записано целое число .В выходной файл выведите одно число – количество кругляшей в числе N
Однажды в просторах рунета появился следующий ребус: 157892 = 3 203516 = 2 ...

Выведите одно целое число — сумму чисел от 1 до N
1)Даны четыре числа. Требуется найти самое маленькое и самое большое из них. Входные данные...

Найдите наименьшее целое число, которое при делении на число 3,5 и 7дает в остатке соответственно 1.4 и 3
Найдите наименьшее целое число, которое при делении на число 3,5 и 7 дает в остатке соответственно...


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

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

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