{Выводит узор из 100 произвольно размещенных окружностей произвольного
радиуса и цвета}
uses Graph;
var
grDriver:integer;
grMode: integer;
grPath:string;
ErrCode:integer;
x,y,r: integer; ( координаты центра и радиус окружности }
i: integer;
begin
grDriver:=VGA;
grMode:=VGAHi;
grPath:=' ';
InitGraph (grDriver,grMode,grPath);
ErrCode:=GraphResult;
if ErrCode <> grOk then
writeln ('Ошибка инициализации графического режима.1);
writeln ('Для завершения работы нажмите <Enter>');
readln;
Halt(l);
end;
Randomize;
for i:=l to 100 do
x:=Random(640);
y:=Random(480);
r:=Random(240);
Setcolor(Random(16));
Circle(x,y,r);
readin;
end.
#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;
{Выводит узор из 100 произвольно размещенных окружностей произвольного
радиуса и цвета}
uses Graph;
var
grDriver:integer;
grMode: integer;
grPath:string;
ErrCode:integer;
x,y,r: integer; ( координаты центра и радиус окружности }
i: integer;
begin
grDriver:=VGA;
grMode:=VGAHi;
grPath:=' ';
InitGraph (grDriver,grMode,grPath);
ErrCode:=GraphResult;
if ErrCode <> grOk then
begin
writeln ('Ошибка инициализации графического режима.1);
writeln ('Для завершения работы нажмите <Enter>');
readln;
Halt(l);
end;
Randomize;
for i:=l to 100 do
begin
x:=Random(640);
y:=Random(480);
r:=Random(240);
Setcolor(Random(16));
Circle(x,y,r);
end;
readin;
end.
#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;
}