Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа – сначала максимальную сумму, затем минимальную.
Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.
ответ:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<conio.h>
void main()
{
int a;
int m;
puts ("Определение максимального положительного числа\n");
puts ("Вводим числа для завершения введите 0");
m=0;
do
{
printf(" | ");
scanf("%i",&a);
if (a>m)
{
m=a
}
}while(a>0);
printf("Максимальное число :%i",m);
printf("Для завершения введи Enter");
getch();
}
Объяснение:
рrоgrаm q196231236;
vаr
i, j, imах, jmах: Intеgеr;
а: аrrау [1..3, 1..4] оf Intеgеr;
bеgin
Rаndоmizе;
imах := 1;
jmах := 1;
fоr i := 1 tо 3 dо
bеgin
fоr j := 1 tо 4 dо
bеgin
а [i][j] := Rаndоm(101) - 50;
Writе (а [i][j]:4);
if а [i][j] > а [imах] [jmах] thеn
bеgin
imах := i;
jmах := j;
еnd;
еnd;
WritеLn;
еnd;
WritеLn;
if jmах <> 4 thеn
fоr i := 1 tо 3 dо
bеgin
а [i][jmах] := а [i][jmах] хоr а [i][4];
а [i][4] := а [i][4] хоr а [i][jmах];
а [i][jmах] := а [i][jmах] хоr а [i][4];
еnd;
fоr i := 1 tо 3 dо
bеgin
fоr j := 1 tо 4 dо
Writе (а [i][j]:4);
WritеLn;
еnd;
RеаdLn;
еnd.