1. Главная
  2. Библиотека
  3. Экономика предприятия
  4. Вася победил на Всеберляндской олимпиаде по программиро...
Разбор задачи

Вася победил на Всеберляндской олимпиаде по программированию и теперь получит призы от спонсоров! Все призы выложены последовательно в одну линию, каждый приз имеет свою ценность (ценность может быть отрицательной). Вася может выбрать числа и и взять себе

  • Предмет: Экономика предприятия
  • Автор: Кэмп
  • #Экономико-математические методы в анализе и планировании
  • #Эконометрическое моделирование финансовых потоков
Вася победил на Всеберляндской олимпиаде по программированию и теперь получит призы от спонсоров! Все призы выложены последовательно в одну линию, каждый приз имеет свою ценность (ценность может быть отрицательной). Вася может выбрать числа и и взять себе

Условие:

Вася победил на Всеберляндской олимпиаде по программированию и теперь получит призы от спонсоров! Все призы выложены последовательно в одну линию, каждый приз имеет свою ценность aia_{i} (ценность может быть отрицательной). Вася может выбрать числа LL и RR и взять себе все призы с номерами от LL до RR включительно. Однако есть одно ограничение: ценность взятых Васей призов ни в коем случае не должна делиться нацело на KK, потому что KK - это несчастливое для Васи число.

Определите максимальную суммарную ценность призов, которые может взять Вася. Если это необходимо, Вася может не брать ни одного приза.

В первой строке вводится два числа NN и K(1N,K100000)K(1 \leq N, K \leq 100000) - количество призов и несчастливое число Васи.

Во второй строке вводится NN чисел ai(106ai106)a_{i}\left(-10^{6} \leq a_{i} \leq 10^{6}\right) - ценности призов. Выведите одно число - максимальную суммарную ценность призов, полученных Васей. Если невыгодно брать ни один приз, выведите число 0.

Решение:

1. Дано

  • NN: Количество призов (1N1051 \leq N \leq 10^5).
  • KK: Несчастливое число (1K1051 \leq K \leq 10^5).
  • aia_i: Ценности призов (106ai106-10^6 \leq a_i \leq 10^6).
  • Вася выбирает отрезок [L,R][L, R] такой, что сумма SL,R=i=LRaiS_{L, R} = \sum_{i=L}^{R} a_i не делится на KK.
  • Нужно найти максимальное возможное значение SL,RS_{L, R}. Если все возможные суммы делятся на KK или отрицательны, ответ

2. Найти

Максимальную сумму SL,RS_{L, R} такую, что SL,R≢0(modK)S_{L, R} \not\equiv 0 \pmod{K}.

3. Решение

Сумма на отрезке [L,R][L, R] может быть выражена через префиксные суммы: SL,R=PRPL1S_{L, R} = P_R - P_{L-1}, где Pi=j=1iajP_i = \sum_{j=1}^{i} a_j...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое ключевое условие должно выполняться для суммарной ценности призов, которые Вася может взять?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет