#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;
Информационный объем I = 44100 Гц * 5 * 60 с * 16 бит = 211680000 бит = 26460000 байт = 25839,84375 Кбайт = 25,23422241210938 Мбайт
Задание 2
I = 1,3 Мбайт t = 1 мин Частота дискретизации v = 1,3 * 1024 * 1024 * 8 бит / 60 с / 8 бит = 22719,147 Гц
Задание 3
I = 5.1 Мбайт, t = 2 минуты, v = 22050 Гц Разрядность аудиоадаптера i = 5.1 * 1024 * 1024 * 8 бит / (2 * 60) с / 22050 Гц = 16,1685 бит (округленно 16 бит)
Задание 4
I = 0.01 Гбайт, i = 16 бит, v = 44100 Гц Время t = 0,01 * 1024 * 1024 * 1024 * 8 бит / 16 бит / 44100 Гц = 121 с (округляем до 120 с)
#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;
}