#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;
}
Порядок просмотра страниц и регулярность последующих визитов определяется алгоритмами поисковой машины. Используя файл robots.txt, в котором содержатся инструкции для поисковых роботов, владелец сайта может запретить индексирование, как всего сайта, так и некоторых его страниц.
Существуют следующие типы поисковых роботов:
национальный поисковый робот: собирает информацию с одного домена (например, .ru), используется в локальных системах поиска;
глобальные поисковые роботы: собирают информацию с различных национальных сайтов, используются в глобальных системах поиска;
индексатор картинок: ведет работу по индексации графики;
индексатор медиа-файлов: ведет работу по индексации файлов формата аудио и видео;
робот-зеркальщик: занимается определением зеркал сайтов;
ссылочный робот: подсчитывает количество ссылок на сайте, ТИЦ и др.;
робот-оформитель: оформляет результаты, выдаваемые поисковой системой;
проверяющий робот: проверяет присутствие ресурса в базе данных и число индексированных документов;
робот-стукач (иначе называется дятел): проверяет доступность сайта или документа, на который имеется ссылка;
робот-шпион: занимается поиском ссылок на сайты, которые не находятся в базе данных системы;
робот-смотритель: перепроверяет полученные результаты;
робот-исследователь: занимается отладкой поискового алгоритма или исследованием конкретных сайтов;
оперативный робот: определяет время последнего обновления сайтов.