Переведите из Python в C++
n, k = [int(s) for s in input().split()]
bahn = ['I'] * n
for i in range(k):
left, right = [int(s) for s in input().split()]
for j in range(left - 1, right):
bahn[j] = '.'
print(''.join(bahn))
Пожалуйста,дам много баллов .

Ответы

Ответ дал: Helper211
0

Если в 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;

}

Ответ дал: fesenko3369
0
N кеглей выставили в один ряд, занумеровав их слева направо числами от 1 до N. Затем по этому ряду бросили K шаров, при этом i-й шар сбил все кегли с номерами от li до ri включительно. Определите, какие кегли остались стоять на месте.

Программа должна вывести последовательность из N символов, где j-й символ есть “I”, если j-я кегля осталась стоять, или “.”, если j-я кегля была сбита. Я щас решаю эту задачку и ты что-то не так перевёл в си.Попробуй запустить код.
Вас заинтересует