Задача коммивояжёра Есть 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. Выходные данные Выведите единственное целое число — минимальную суммарную стоимость. n = int(input()) a = [[int(s) for s in input().split(" ")]for i in range(n)] a.sort() (ans, c) = (a[0][1], sum(a[0])) for w in a[1:]: ___ans += w[1] + max(w[0] - c, 0) ___c = max(c, sum(w)) print(ans)
Задание

Задача коммивояжёра
Есть 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.
Выходные данные
Выведите единственное целое число — минимальную суммарную стоимость.

  • 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\)