B. AliKingspress

Codeforces
IDCF10155B
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Для экстренного пополнения боеприпасов и вооружения агенты «Кингсман» пользуются службой «AliKingspress». Помимо запроса помощи с вооружением, можно также делать другие запросы, однако уже не бесплатно, а за бонусные баллы. Баллы можно получать каждый день, заходя в специальное приложение. В первый день пользователь получает a1 баллов, во второй — a2 баллов, ..., в n-й день — an баллов. После этого, заходя каждый день, пользователь будет все еще получать an бонусов. Если же пропустить один или несколько дней и не заходить в приложение, при следующем заходе начисление бонусов опять начнется с a1. Эггси посчитал, что для выполнения всех дополнительных запросов, которые он хочет, нужно x бонусов. Так как он перфекционист, лишние бонусы ему не нужны, он хочет накопить их ровно x, ни больше, ни меньше. Однако сделать это нужно как можно быстрее, потому что долго ждать он не намерен. Задачу нахождения минимального количества дней, требуемого для этого, он поручил вам — своего верному программисту, пока он сам спасает мир. Помогите ему! В первой строке содержится два числа n и x — количество различных бонусов, а также суммарное количество бонусов, которое нужно набрать Эггси (1 ≤ n ≤ 100, 1 ≤ x ≤ 106). Во второй строке содержится n чисел ai — размеры бонусов в зависимости от количества дней захода в приложение (1 ≤ ai ≤ 1 000). В единственной строке выведите минимальное количество дней, нужное для получения ровно x бонусов или _-1_, если набрать ровно x бонусов невозможно. В первом примере Эггси может заходить в приложение 5 дней подряд и получить, соответственно, 1 + 2 + 3 + 4 + 4 = 14 бонусов. Во втором тестовом примере Эггси может зайти в приложение три дня подряд, затем пропустить один день, а затем зайти еще два дня подряд. В результате он получит 1 + 4 + 2 + 1 + 4 = 12 бонусов и потратит на это 3 + 1 + 2 = 6 дней. ## Входные Данные В первой строке содержится два числа n и x — количество различных бонусов, а также суммарное количество бонусов, которое нужно набрать Эггси (1 ≤ n ≤ 100, 1 ≤ x ≤ 106).Во второй строке содержится n чисел ai — размеры бонусов в зависимости от количества дней захода в приложение (1 ≤ ai ≤ 1 000). ## Выходные Данные В единственной строке выведите минимальное количество дней, нужное для получения ровно x бонусов или _-1_, если набрать ровно x бонусов невозможно. ## Примеры Входные данные4 141 2 3 4Выходные данные5Входные данные5 121 4 2 6 3Выходные данные6Входные данные3 83 4 2Выходные данные-1 ## Примечание В первом примере Эггси может заходить в приложение 5 дней подряд и получить, соответственно, 1 + 2 + 3 + 4 + 4 = 14 бонусов.Во втором тестовом примере Эггси может зайти в приложение три дня подряд, затем пропустить один день, а затем зайти еще два дня подряд. В результате он получит 1 + 4 + 2 + 1 + 4 = 12 бонусов и потратит на это 3 + 1 + 2 = 6 дней. [samples]
**Definitions** Let $ n, x \in \mathbb{Z}^+ $ be given, with $ 1 \leq n \leq 100 $, $ 1 \leq x \leq 10^6 $. Let $ A = (a_1, a_2, \dots, a_n) \in \mathbb{Z}^n $ be the sequence of daily bonus amounts, where $ 1 \leq a_i \leq 1000 $. The bonus pattern repeats every $ n $ days: on day $ k $, the bonus is $ a_{(k-1) \bmod n + 1} $. If the user skips one or more days, the pattern restarts from $ a_1 $ on the next day. **Constraints** - The user must accumulate exactly $ x $ bonus points. - Days may be non-consecutive; skipping days resets the pattern. - Each day of activity contributes exactly one bonus value from $ A $, according to the current position in the cycle. - Skipping days contributes 0 bonus but counts toward total days elapsed. **Objective** Find the minimum total number of days (including skipped days) required to accumulate exactly $ x $ bonus points, or return $-1$ if impossible.
API Response (JSON)
{
  "problem": {
    "name": "B. AliKingspress",
    "description": {
      "content": "Для экстренного пополнения боеприпасов и вооружения агенты «Кингсман» пользуются службой «AliKingspress». Помимо запроса помощи с вооружением, можно также делать другие запросы, однако уже не бесплатн",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10155B"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Для экстренного пополнения боеприпасов и вооружения агенты «Кингсман» пользуются службой «AliKingspress». Помимо запроса помощи с вооружением, можно также делать другие запросы, однако уже не бесплатн...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ n, x \\in \\mathbb{Z}^+ $ be given, with $ 1 \\leq n \\leq 100 $, $ 1 \\leq x \\leq 10^6 $.  \nLet $ A = (a_1, a_2, \\dots, a_n) \\in \\mathbb{Z}^n $ be the sequence of daily bonus amoun...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments