#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;
}
Наливаем полное ведро 9 литров.Переливаем во 2 ведро тогда остаётся в первом 4 литра а во втором 5 литров.Выливаем воду из 5 литрового ведра.Выливаем в 5 литровое 4 литра из 1 ведра.Тогда в первом 0 литров в 5 литровом 4 литра.Набираем полное 9 литровое ведро.Тогда получаем в одном 9 литров а во втором 4 литра.Отливаем из 9 литрового 1 литр во второе (где было 4 литра а оно 5 литровое).Тогда в одном 8 литров а во втором 5 литров.Выливаем всю воду из 5 литрового ведра.Остаётся в первом 8 литров а во втором 0 литров.Из 8 литров отливаем 5 литров во второе ведро а в пером останется 3 литра
Фф)