Решение задачи "Абонент временно недоступен" с Codeforces

Без пояснения   Просмотров: 24


Поликарп живет на координатной оси Ox и путешествует из точки x=a в x=b. Он двигается равномерно прямолинейно со скоростью одна единица расстояния в минуту.

На оси Ox в точке x=c находится базовая станция оператора сотовой связи. Известно, что радиус её покрытия составляет r. Таким образом, если абонент находится на расстоянии меньшем или равном r от точки x=c, то он находится в зоне покрытия сети, иначе — нет. Базовая станция может находится как на пути следования Поликарпа, так и вне его.

Выведите время в минутах, в течение которого Поликарп не будет находится в зоне покрытия сети, при прямолинейном равномерном движении из x=a в x=b. Его скорость движения — одна единица расстояния в минуту.

Код

#include <bits/stdc++.h>
using namespace std;
int t,a,b,c,r;
int main()
{
  cin >> t;
  while(t--)
  {
    cin >> a >> b >> c >> r;
    if(a>b)
      swap(a,b);
    cout<<b - a + min(max(a, c - r) - min(b, c + r), 0) << endl;
  }
  return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться