Задание
Сопоставьте условие задачи с программным кодом.
- Объекты 1
- Есть n городов, пронумерованных от 1 до n, красота города i равна ai.
Коммивояжёр хочет начать с города 1, посетить каждый город ровно один раз и вернуться в город 1.
Для всех i ≠ j, перелёт из города i в город j стоит max\(ci, aj − ai\) рублей, где ci — это нижний порог цены, наложенный на перелёт городом i. Обратите внимание, что здесь не берётся абсолютное значение. Найдите минимальную общую стоимость поездки для коммивояжёра.
Входные данные
В первой строке содержится одно целое n \(2 ≤ n ≤ 105\) — количество городов.
В i-й из следующих n строк содержится по два целых числа ai, ci \(0 ≤ ai, ci ≤ 109\) — красота и нижний порог цены города i.
Выходные данные
Выведите единственное целое число — минимальную суммарную стоимость. - У Поликарпа есть x красных и y синих конфет. Из них он хочет составить подарочные наборы. Каждый подарочный набор будет содержать либо х1 красных конфет и у1 синих конфет, либо наоборот — х1 синих конфет и у1 красных конфет.
Помогите Поликарпу понять, какое наибольшее число подарочных наборов он может составить.
Например, если x = 10, y = 12, х1 = 5 и у2 = 2, то он может составить три подарочных набора:
У Поликарпа останется одна красная конфета, используя которую, он не сможет собрать ещё один подарочный набор.
Входные данные
В первой строке находится целое число n \(1 ≤ n ≤ 104\). Далее следуют n наборов входных данных.
Каждый набор входных данных состоит из одной строки в которой находятся четыре целых числа x, y, a и b \(1 ≤ x, y, a, b ≤ 109\).
Выходные данные
Для каждого набора входных данных выведите одно число — максимальное количество подарочных наборов, которое может собрать Поликарп.
- Есть n городов, пронумерованных от 1 до n, красота города i равна ai.
- Объекты 2
n = int\(input\(\))
a =\[\[int\(s\) for s in input\(\)\.split\(" "\)\]for i in range\(n\)]
a.sort\(\)
\(ans, c\) = \(a⟨1⟩⟨2⟩, sum\(a⟨1⟩\))
for w in a\[1:\]:
ans += w\[1\]+ max\(w⟨1⟩ \- c, 0\)
c = max\(c, sum\(w\))
print\(ans\)n = int\(input\(\))
for _ in range\(t\):
x, y, a, b = map(int, input\(\).split\(\))
d = 0
if a > b:
a, b = b, a
if x > y:
x, y = y, x
ans = min\(x//a, y//b\)
if a != b:
d = \(y \* b \- x \* a\)//\(b \* b \- a \* a\)for k in range\(d, d \+ 2\): A = x \- k \* a B = y \- k \* b if A \>= 0 and B \>= 0: ans = max\(ans, k \+ min\(A//b, B//a\)\) print\(ans\)