littlefoxy
11.12.2020 11:00

Задача 3: Конструктор Сереже на первое сентября подарили магнитный конструктор, состоящий из брусков разной длины, которые могут соединяться концами друг с другом. В подарочном наборе все бруски уложены в порядке неубывания длины, причем бруски могут иметь одинаковую длину — это очень важно для Серёжи, потому что он будет собирать из брусков равносторонние треугольники для своего большого проекта. Для этого проекта Серёже нужно очень много деталей такой формы, и он хочет понять, сколько всего возможно собрать равносторонних треугольников из конструктора для последующего их одновременного использования в проекте. Размеры треугольников могут быть различными, но все они должны быть равносторонними. Определите, какое максимальное количество равносторонних треугольников можно собрать из конструктора (брусок, использованный в одном треугольнике, уже не может быть использован в другом).

Входные данные
В первой строке входных данных дано целое число n — количество брусков (1 ≤ n ≤ 105). В следующих n строках даны длины брусков конструктора — целые числа от 1 до 109 по одному в строке. Числа даны в неубывающем порядке.

Выходные данные
Требуется вывести одно целое число — максимально возможное число равносторонних треугольников.

Система оценки
Решения, правильно работающие при n ≤ 100, будут оцениваться в

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ns151199
22.08.2021 11:25
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;

int main() {
   float a,b,c,p,s;
   struct   {
           float ax,ay,bx,by,cx,cy;
     } ABC;
   cout<<" задайте координаты точек"<<endl;
   cout<<" ax "<<" ay "<<" bx "<<" by "<<" cx "<<" cy";
   cout<<endl;
   cin>>ABC.ax>>ABC.ay>>ABC.bx>>ABC.by>>ABC.cx>>ABC.cy;
// вычисление длин сторон
   a=sqrt(pow((ABC.bx-ABC.ax),2)+pow((ABC.by-ABC.ay),2));
   b=sqrt(pow((ABC.cx-ABC.bx),2)+pow((ABC.cy-ABC.by),2));
   c=sqrt(pow((ABC.cx-ABC.ax),2)+pow((ABC.cy-ABC.ay),2));
   p=(a+b+c)/2;
// проверка, что можно составить треугольник
   if (((p-a)>0) && ((p-b)>0) && ((p-c)>0))
   cout<<"точки образуют треугольник"<<endl;
   else  cout<<"точки лежат на одной прямой"<<endl;

   system("pause");
   return(0);
}
0,0(0 оценок)
Ответ:
Max638
06.02.2022 05:37
Program abc;
var a:array[1..6] of integer;
var i,s: integer;
begin
 i:=0;a[1]:=500;a[2]:=100;a[3]:=10;a[4]:=5;a[5]:=2;a[6]:=1;
writeln('Введите целое число,сумму денег:');
readln(s);
while s<>0 do
begin
if s>=a[1] then begin
s:=s-a[1]; i:=i+1; end;
if (s>=a[2]) and (s<a[1]) then begin s:=s-a[2]; i:=i+1; end;
if (s>=a[3]) and (s<a[2]) then begin s:=s-a[3]; i:=i+1; end;
if (s>=a[4]) and (s<a[3]) then begin s:=s-a[4]; i:=i+1; end;
if (s>=a[5]) and (s<a[4]) then begin s:=s-a[5]; i:=i+1; end;
if (s>=a[6]) and (s<a[5]) then begin s:=s-a[6]; i:=i+1; end; 
end;
Writeln('Наименьшее число купюр =',i);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота