В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
камил486
камил486
10.12.2020 08:16 •  Информатика

Дано описание массива: vara:array[1..n]ofinteger;

Выбери, какие элементы массива подходят.

среда четверг суббота
−4.31.3
−7−34

Показать ответ
Ответ:
JIucenok
JIucenok
12.04.2020 07:49

Объяснение:

Немного математики:

Вся заштрихованная область представляет собой решение некоторой системы уравнений. Например, I четверть координатной плоскости задается x > 0, y > 0. Этот случай относится к тому, что область принадлежит той самой I четверти.

Теперь у нас есть два варианта решения: проверить принадлежности x к отрезку (0; 7), а затем разбить на два условия: если точка принадлежит отрезку (0;5], то координата y должна принадлежать (0;5). Иначе если координата икс в отрезке [5;7), то координата y должна быть меньше некоторой линейной функции, проходящей через точки (5;5) и (7;0)

Второй вариант (он будет оптимальнее): сначала проверить принадлежность координаты y в отрезке (0;5). Если это так, то проверить выполнение условия 0 < x < f(y), где f(y) - это некоторая линейная функция.

Давайте найдем эту линейную функцию.

Если линейная функция задается уравнением y = kx + b, то справедлива система:

\left \{ {{5k +b =5} \atop {7k + b=0}} \right.

От второго отнимаем первое уравнение, получаем 2k = -5, или k = -2.5, а b будет при этом равно 17,5

Теперь найдем обратную функцию (решать будем по второму варианту)

y = -2.5x + 17.5\\2y = -5x + 35\\35 - 2y = 5x\\x = 7 - 0.4y

Теперь, точка считается внутри фигуры, если выполняется:

0 < y < 5

0 < x < 7 - 0.4y

Сама программа:

program task;

var x, y: real;

begin

writeln('Введите координаты точки х и y: ');

readln(x, y);

if ((y > 0) and (y < 5)) then begin

if ((x > 0) and (x < 7 - 0.4*y)) then writeln('Попадает')

else writeln('Не попадает')

end;

end.

0,0(0 оценок)
Ответ:
Артёмка12097
Артёмка12097
13.02.2020 18:57

#include <iostream>

typedef long long   ll;

using namespace std;

bool ll_is_valid(ll t, ll N, ll x, ll y)

{

return  t / x + (t - x) / y >= N;

}

ll f(ll N, ll x, ll y)

{

   ll R = 1;

   while (!ll_is_valid(R,N,x,y)) R *= 2;

ll L = R / 2;

while(R - L > 1)

{

 ll M   =   (L + R) / 2;

 

 if (!ll_is_valid(M,N,x,y)) {L = M;}

 else {R = M;}

}

return  R;

}

int  main()

{

ll N,x,y;

cin >> N >> x >> y;

if(x > y) swap( x, y );  

cout << f(N, x, y) <<  std::endl;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота