//Блок-схемы в приложении //Pascal ABC.NET v3.0 сборка 1111
//1 Var a,p,s:real; begin readln(a); p:=a*4; s:=a*a; writeln('P=',p); writeln('S=',s); end.
//2 Var a,b:integer; begin read(a,b); if a>b then writeln(b); if a=b then writeln('='); if a<b then writeln(a); end.
{На этом и закончу всем, кто когда либо и чем либо поддерживал данный проект. Думаю, он ещё многим послужит в критический момент. И я говорю не только про "списать домашку". Счастливо оставаться, господин Alviko. Может, ещё увидимся. Ваш, Глеб 'I3artle' Косырев}
#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;
}
//Pascal ABC.NET v3.0 сборка 1111
//1
Var
a,p,s:real;
begin
readln(a);
p:=a*4;
s:=a*a;
writeln('P=',p);
writeln('S=',s);
end.
//2
Var
a,b:integer;
begin
read(a,b);
if a>b then writeln(b);
if a=b then writeln('=');
if a<b then writeln(a);
end.
{На этом и закончу всем, кто когда либо и чем либо поддерживал данный проект. Думаю, он ещё многим послужит в критический момент. И я говорю не только про "списать домашку". Счастливо оставаться, господин Alviko. Может, ещё увидимся.
Ваш, Глеб 'I3artle' Косырев}