Для удобства перенёс таблицу из вопроса в Excel (см. приложение №1)
Вопрос №1: Определите, какое минимальное количество учителей физкультуры требуется при таком расписании. Почему? ответ: 3. Так как на втором уроке одновременно идут 3 занятия у классов: 9А, 10А, 10Б.
Вопрос №2: Найдите один из вариантов расписания, при котором можно обойтись двумя учителями физкультуры, совмещать уроки нельзя. ответ: см. приложение (картинка №2)
Вопрос №3: В школе три учителя физкультуры: Иванов, Петров, Сидоров. Распределите между ними уроки в таблице так, чтобы ни у кого не было "окон" (пустых уроков). ответ: см. приложение (картинка №3)
Вопрос №4: Распределите между тремя учителями уроки так, чтобы нагрузка у всех была одинаковой. ответ: см. приложение (картинка №4)
#include <iostream>
#include <string>
using namespace std;
int main()
{
string w;
int b;
string arr;
getline(cin,w);
cin>>b;
cin.ignore();
getline(cin,arr);
if(w == "szyfruj")
{
for(int i=0; i<arr.size(); i++)
{
if(int(arr[i])>=97 && int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)
{
if(int(arr[i])>=97 && int(arr[i])<=122)
{
if(int(arr[i])+b>122) arr[i]-=26;
arr[i]+=b;
}
else
{
if(int (arr[i])+b>90) arr[i]-=26;
arr[i]+=b;
}
}
}
}
if(w == "odszyfruj")
{
for(int i=0; i<arr.size(); i++)
{
if(int(arr[i])>=97 && int(arr[i])<=122 || int(arr[i])>=65 && int(arr[i])<=90)
{
if(int(arr[i])>=97 && int(arr[i])<=122)
{
if(int(arr[i])-b<97) arr[i]+=26;
arr[i]-=b;
}
else
{
if(int (arr[i])-b<65) arr[i]+=26;
arr[i]-=b;
}
}
}
}
cout<<arr;
return 0;
}
Объяснение:
код на с++ для примера
пункт со сдвигом букв сам сделаешь
P. S. у меня на 5 они сдвигаются,