zlatoust99
25.08.2021 14:27

Информатика 3. вставка скобок

ограничение времени 2 секунды
ограничение памяти 64mb
ввод стандартный ввод или input.txt
вывод стандартный вывод или output.txt
назовём скобочную последовательность, состоящую из трёх видов скобок (круглых, квадратных или фигурных) , если она может быть построена по следующим правилам:
пустая последовательность является правильной.
если
a
— правильная скобочная последовательность, то
{
a
}
,
[
a
]
и
(
a
)
— правильные скобочные последовательности.
если
a
и
b
— правильная скобочная последовательность, то
a
b
— правильная скобочная последовательность.
иначе говоря, правильная скобочная последовательность получается, если мы берём какое-то выражение с корректно расставленными скобками и убираем оттуда всё, кроме скобок.
вам дана скобочная последовательность длины
n
. вам разрешено вставлять скобки в любое место последовательности (в начало, в конец и между двумя любыми скобками). ваша — добавить не более
n
скобок так, чтобы последовательность превратилась в правильную.
разберём три примера к . в первом примере все три скобки добавлены в конец — мы закрываем уже открытые скобки. во втором примере последовательность и так является правильной. можно вывести её, можно, к примеру, добавить ещё пару скобок — минимальность ответа не требуется. в третьем примере последовательность правильной не является — скобки закрываются не в том порядке. можно исправить, например, вставив открывающую квадратную скобку сперели и закрывающую квадратную — перед закрывающей фигурной.
формат ввода

на вход подаётся непустая строка из не более, чем
1
0
4
символов, состоящая из символов ‘{’, ‘}’, ‘[’, ‘]’, ‘(’ и ‘)’.
формат вывода

выведите итоговую строку, получившуюся после вставки скобок и являющуюся правильной скобочной последовательностью. длина строки не должна превышать удвоенной длины входной строки. если ответов несколько, выведите любой. минимизировать длину строки не требуется.
пример 1
ввод вывод
([{
{}
пример 2
ввод вывод


пример 3
ввод вывод
{[}]
{}[]{}[]
примечания

решением этой должна являться программа на одном из представленных в системе языков программирования, решающая данную . программа должна считывать данные со стандартного ввода (клавиатуры) и выводить на стандартный вывод (монитор). никаких дополнительных строк или символов выводить не разрешается.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
doblezor
09.06.2021 05:59

#include <iostream>

#include <vector>

using namespace std;

// глобальные переменные

const int arraySize = 10;

vector <int> numbers;

// сам алгоритм.

void result(){

   

 // совет - обьявляй все переменные в начале функции  

 int leader = 0;

 

 int maxCount = 0;

 int count = 0;

 

 

 // поиск самого частого числа

 for (int c = 0; c < 9;c++){

     // обнуляем счетчик

     count = 0;

     

     for (int c1 = 0;c1 < arraySize;c1++){

         if (numbers[c1] == c) count++;

     }

     

     // проверка на лидера

     if (maxCount < count){

         leader = c;

         maxCount = count;

     }

 }

 

 

 // ну..с посмотрим:

 cout << "Leader: " << leader << " (" << maxCount << ") " << std::endl;

}

int main()

{

   // подготовка масива

   srand(time(NULL)); // обнулем внутрений таймер для полного рандома

   for (int c = 0; c < arraySize;c++) {

       numbers.push_back(rand() % 9); // заполняем масив числами

   }

   // посмотрим на оригинальный масив

   cout << "Original array: ";

   for (int c = 0;c < arraySize;c++) cout << numbers[c] << " ";

   cout << std::endl;

   // сортировка

   result();

   return 0;

}

Объяснение:

Хорошая книга по с++: Герберт Шилд - с++ базовый курс.

0,0(0 оценок)
Ответ:
dragons55u
04.01.2022 15:49
//PascalABC.NET 3.1 сборка 1239
const
    n = 10;
    m = 10;

var
    i, j: integer;
    a, b: array[1..n, 1..m] of integer;
    f: boolean;

begin
    for i := 1 to n do
    begin
        for j := 1 to m do
        begin
            a[i, j] := random(50);
            write(a[i, j]:3, ' ');
        end;
        writeln;
    end;
    writeln;
    
    for i := 1 to n do
    begin
        f := false;
        for j := 1 to m do
        begin
            if not f and (a[i, j] mod 2 = 1) then begin
                a[i, j] := 2 * a[i, j];
                f := true;
            end;
            write(a[i, j]:3, ' ');
        end;
        writeln;
    end;
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота