Объявляем цикл от 1 до 11, то бишь пробегаемся по массиву Dat и смотрим, если значение элемента больше 22, то прибавляем к переменной ш 1:
нц для к от 1 до 11 если Dat[к]>22 то ш:=ш+1 Все кц
Выводим на экран значение переменной ш:
вывод ш
Таким образом мы видим, что программа подсчитывает количество классов в которых больше 22 учеников. Таких классов будет 4: 2(23), 5(25), 7(23) и 10(29).
Создаём массив из 11 элементов, который называем Dat:
целтаб Dat[1:11]Объявляем переменные к и ш, являющимися целыми числами:
цел к, шЗаполняем массив Dat:
Dat[1]:=21 Dat[4]:=19 Dat[7]:=23 Dat[10]:=29 Dat[2]:=23 Dat[5]:=25 Dat[8]:=21 Dat[11]:=19 Dat[3]:=20 Dat[6]:=22 Dat[9]:=22Присваиваем переменной ш значение 0.
ш:=0Объявляем цикл от 1 до 11, то бишь пробегаемся по массиву Dat и смотрим, если значение элемента больше 22, то прибавляем к переменной ш 1:
нц для к от 1 до 11 если Dat[к]>22 то ш:=ш+1 Все кцВыводим на экран значение переменной ш:
вывод шТаким образом мы видим, что программа подсчитывает количество классов в которых больше 22 учеников. Таких классов будет 4: 2(23), 5(25), 7(23) и 10(29).
#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;
}