Задание

Сопоставьте условие задачи с программным кодом.

  • Объекты 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\).
      Выходные данные
      Для каждого набора входных данных выведите одно число — максимальное количество подарочных наборов, которое может собрать Поликарп.
  • Объекты 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\)