#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;
}
Var r1, r2: Integer;
Procedure S(r1, r2: Integer);
Var s: Real;
Begin
If r1 > r2 Then
s := Pi * (r1 * r1 - r2 * r2)
Else
s := Pi * (r2 * r2 - r1 * r1);
WriteLn('Площадь кольца: ', s:5:2);
End;
Begin
Write('r1 = ');
ReadLn(r1);
Write('r2 = ');
ReadLn(r2);
S(r1, r2);
ReadLn;
End.
Program TaskA;
Var r1, r2: Integer;
Function S(r1, r2: Integer): Real;
Begin
If r1 > r2 Then
result := Pi * (r1 * r1 - r2 * r2)
Else
result := Pi * (r2 * r2 - r1 * r1);
End;
Begin
Write('r1 = ');
ReadLn(r1);
Write('r2 = ');
ReadLn(r2);
WriteLn('Площадь кольца: ', S(r1, r2):5:2);
end.