Определим количество различных команд робота. Задачка конечно надуманная, потому что нет, например, команды остановки робота. Ну, что задали... Итак, "вперед" и "копать" - две команды. "Направо на угол от 0 до 90" - это 90/5+1 = 19 команд. Тут мы используем формулу для нахождения количества точек на интервале [a;b] с шагом h: n=(b-a)/h+1. Столько же команд для "Налево на угол от 0 до 90" - 19. Всего получается 2+19+19=40 команд. Пусть эти команды имеют коды от 0 до 39, тогда 39 - самое большое число для кодирования. В качестве кода выбираем запись в двоичном виде. 2⁵ < 39 < 2⁶, поэтому для кодирования нам потребуется 6 бит. Ну а 1000 команд потребуют в 1000 раз больше памяти: 6×1000=6000. В байте 8 бит, поэтому 6000 бит = 6000/8 = 750 байт.
ответ: 750 байт
#include <iostream>
using namespace std;
const
int n=3;
int main(){
int ma[n*2][n];
bool b;
int nr=0;
nr=n;
b=false;
for(int i=0;i<n*2;i++)
for(int j=0;j<n;j++)
ma[i][j]=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>ma[i][j];
cout<<"Matrix:"<<endl;
for(int i=0;i<nr;i++){
for(int j=0;j<n;j++)
cout<<ma[i][j]<<' ';
cout<<endl;}
for(int i=0;i<nr;i++){
for(int j=0;j<n;j++){
if(ma[i][j]==0)b=true;}
if(b==true){
for(int z=nr-1;z>i;z--){
for(int c=0;c<n;c++)
ma[z+1][c]=ma[z][c];}
for(int c=0;c<n;c++)
ma[i+1][c]=5;
nr++;}
b=false;}
cout<<"Final matrix:"<<endl;
for(int i=0;i<nr;i++){
for(int j=0;j<n;j++)
cout<<ma[i][j]<<' ';
cout<<endl;
}
cin.get();
cin.get();
return 0;
}