Выбери строку заголовка алгоритма.
алг фигура_12
начало
опустить перо
сместиться на вектор (x1,y1)
сместиться на вектор (x2,y2)
сместиться на вектор (x3,y3)
сместиться на вектор (x4,y4)
поднять перо
сместиться на вектор (x5,y5)
конец
алг фигура_(x1,y1)
фигура_(x3,y3)
алг фигура_12
12
Ты из пункта А в пункт B едешь 2км.
Из B в пункт E 5км.
То есть куда тебе нужно из серой клетки попасть в другую серую. Например из А в пункт B, ты уже проехал 2км. Далее смотришь по горизонтали куда можно поехать. Ты видишь 3км (в столбике С) и 5км (в столбике E). Например выбираешь С и спускаешь на серую клетку. Далее от неё смотришь 6 (столбик D) и 10 (столбик E). Дальше так же выбираешь и спускаешься, но это я на пример показал длинный путь. Самый кратчайший я написал под правильным ответом.
Надеюсь понятно объяснил, если что пиши в комментариях или в сообщения.
Если в 4-й и 5-й строках исходного кода на Python 1 отступ, а в 6-й - два отступа, то эквивалент на C++ может быть записан в следующем виде:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
int main()
{
char c;
int n, k;
std::vector<int> left,right;
std::string line,nk;
std::vector<char> bahn;
std::getline(std::cin, line);
for (int i = 0; i < line.length(); i++)
if (line[i] != ' ') nk.push_back(line[i]);
else { n = atoi(nk.c_str()); nk = std::string(); }
k = atoi(nk.c_str());
for (int i=0;i<n;i++) bahn.push_back('I');
for (int i = 0; i < k; i++)
{
nk.clear();
std::getline(std::cin, line);
for (int i = 0; i < line.length(); i++)
if (line[i] != ' ') nk.push_back(line[i]);
else { left.push_back(atoi(nk.c_str())); nk = std::string(); }
right.push_back(atoi(nk.c_str()));
}
line = std::string(bahn.begin(), bahn.end());
for (int i = 0; i < k; i++)
for (int j = left.at(i) - 1; j < right.at(i); j++)
line[j] = '.';
std::cout << line;
return 0;
}