Вася решил серьезно заняться логистикой и создать собственную фирму. Он выяснил, в каких городах наблюдается дефицит надувных воздушных шариков, и решил отправить в каждый город партию шариков отдельным грузовиком. Однако выяснилось, что у каждого шофера грузовика свой тариф за 1 километр пути . Вася знает, сколько километров нужно проехать до каждого города. Теперь он хочет определить, каким грузовиком нужно отправить партию товара в каждый город, чтобы затраты его фирмы на доставку были минимальны.
Формат ввода
В первой строке входного файла записано натуральное число N (1 ≤ N ≤ 1000) – количество партий воздушных шариков (совпадающее с количеством заказанных грузовиков).
Во второй строке записано N чисел, задающих расстояния в километрах, которые нужно преодолеть каждой партии шариков (первое число – для первой партии, второе – для второй и т.д.). Все расстояния – натуральные числа, не превосходящие 1000.
На следующей строке записано еще N чисел – тарифы за один километр для доставки партии товара грузовиком (первое число – для первого грузовика, второе – для второго и т.д.).
Тарифы выражаются натуральными числами, не превосходящими 10000.
Формат вывода
В выходной строке выведите N чисел. Первое число — номер грузовика, который должен доставить первую парию, второе число — номер грузовика, который должен доставить вторую парию и т.д., чтобы затраты фирмы на доставку были минимальны. Если вариантов распределения партий по грузовикам несколько, выведите любой из них.
Пример 1
Ввод Вывод
3
10 20 30
50 20 30
1 3 2
Пользователь знает ключ, или
пароль, который известен только ему. К этой группе можно отнести и идентификацию через смс-уведомления. При вводе имени и пароля пользователя сервер сравнивает введенные данные
с сохраненными данными. В случае полной идентичности введенных данных появляется возможность войти в систему.
Различают два вида паролей – динамические
и постоянные. Постоянные пароли изменяются
только по требованию пользователя, а динамические пароли изменяются по определенным параметрам. Например, если пользователь забудет
пароль, сервер может предложить ему динамический пароль для входа в систему.
Объяснение:
Point=record
x,y:real
end;
procedure GetPoint(c:char; var A:Point);
var
x,y:real;
begin
Write('Введите координаты x и y точки ',c,': ');
Read(x,y);
A.x:=x; A.y:=y
end;
function DistPoint(A,B:Point):real;
begin
DistPoint:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;
var
A,B,M:Point;
d,p,ab,ma,mb:real;
begin
GetPoint('A',A); GetPoint('B',B); GetPoint('M',M);
ab:=DistPoint(A,B); ma:=DistPoint(M,A); mb:=DistPoint(M,B);
if ma>=ab+mb then d:=mb
else
if mb>=ma+ab then d:=ma
else begin
p:=(ma+mb+ab)/2;
d:=2*sqrt(p*(p-ab)*(p-ma)*(p-mb))/ab
end;
Writeln('Минимальное расстояние составляет ',d)
end.
Тестовое решение:
Введите координаты x и y точки A: -3 -5
Введите координаты x и y точки B: 2 5
Введите координаты x и y точки M: -3 4
Минимальное расстояние составляет 4.02492235949962