М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Horosh2545
Horosh2545
15.08.2021 17:23 •  Информатика

Задача С++
Количество скобок
Задана строка, состоящая из скобок. Необходимо превратить ее в правильную строку, вставляя как можно меньшее количество скобок в любую позицию (удалять или изменять существующие скобки нельзя). Правильной является строка, которая удовлетворяет следующим правилам:

Пустая строка правильная.
Если s правильная, то (s) также правильная.
Если s и t правильные, то их конкатенация st правильная.
Например, "(()())", "" и "(())()" правильные строки, а "())(", "()(" и ")" - нет.

Формат входных данных
Задана строка из скобок, которая содержит от 1 до 50 символов включительно.

Формат результата
Вывести наименьшее количество скобок, которое следует вставить для того чтобы входная строка стала правильной.

Примеры
Входные данные
(()(()
Результат работы
2

👇
Открыть все ответы
Ответ:
PolliKirill
PolliKirill
15.08.2021
// PascalABC.Net 3.0, сборка 1066
type
  Point=record
  x,y:double;
  end;

procedure GetPoint(c:char; var M:point);
begin
  Write('введите координаты точки ',c,': ');
  Read(M.x,M.y)
end;

function L(A,B:Point):double;
begin
  Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;

function S(A,B,C:Point):double;
var
  p,la,lb,lc:double;
begin
  la:=L(A,B); lb:=L(B,C); lc:=L(C,A);
  if (la+lb>lc) and (la+lc>lb) and (lb+lc>la) then begin
    p:=0.5*(la+lb+lc);
    Result:=sqrt(p*(p-la)*(p-lb)*(p-lc))
    end
  else
    Result:=0
end;

var
  A,B,C,D:Point;
  S1,S2:double;

begin
  GetPoint('A',A);
  GetPoint('B',B);
  GetPoint('C',C);
  GetPoint('D',D);
  S1:=S(A,B,C);
  if S1=0 then Write('По точкам А,В,С нельзя построить треугольник')
  else begin
    S2:=S(C,D,A);
    if S2=0 then Write('По точкам C,D,A нельзя построить треугольник')
    else Writeln('Площадь четырехугольника равна ',S1+S2)
  end
end.

Тестовое решение:
введите координаты точки A: -5 -7
введите координаты точки B: -2 4
введите координаты точки C: 5 9
введите координаты точки D: 9 -3
Площадь четырехугольника равна 123
4,5(94 оценок)
Ответ:
daniar16
daniar16
15.08.2021

#include <iostream>

#include <vector>

#include <cmath>

using namespace std;

struct river{

   string name;

   double length;

   double depth;

   bool ships;

};

signed main(){

   int n;

   cin >> n;

   river a[n];

   for(int i = 0; i < n; i++)

       cin >> a[i].name >> a[i].length >> a[i].depth >> a[i].ships;

   vector<river> ans;

   for(auto i: a)

       if(i.length > 2 && i.ships)

           ans.push_back(i);

   for(auto i: ans){

       cout << "name: " << i.name << "\n";

       cout << "length: " << i.length << "\n";

       cout << "depth: " << i.depth << "\n";

       cout << "ships?: Yes";

   }

}

4,8(7 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ