• Сила заклинания

    Вася нашел древний свиток с заклинанием. Заклинание состоит из N чисел.

    Сила заклинания вычисляется следующим образом: для каждой подстроки (в данном случае это последовательность подряд идущих чисел), считается сумма чисел в этой подстроки, а затем вычисляется сумма всех сумм подстрок.

    Помогите Васе определить силу заклинания.

    Формат входных данных

    В первой строке содержится число N (1 ≤ N ≤ 10000) - количество чисел в записи заклинания.

    Во второй строке содержится N чисел, задающих заклинание. Каждое из чисел не превосходит 10000 по модулю.

    Формат результата

    Выведите одно число - силу заклинания.

    Примеры

    Входные данные

    2
    10 20
    Результат работы

    60
    Входные данные

    3
    2 1 3
    Результат работы

    19
    Примечания

    В первом тесте следующие подстроки: 10; 20; 10 20. Сумма равна 60.

    Во втором тесте следующие подстроки: 2; 1; 3; 2 1; 1 3; 2 1 3. Сумма равна 19.

    Система оценки: Решения, верно работающие при 1 ≤ N ≤ 100 будут получать не менее 50% баллов.

Ответы 1

  • Исходные числа a(0), a(1), ..., a(N - 1).Пусть f(k - 1) — сумма сумм всех чисел из подстрок, кончающихся на числе с номером k - 1. Вычислим f(k).f(k) = (a(0) + a(1) + a(2) + ... + a(k - 1) + a(k)) + (a(1) + a(2) + ... + a(k - 1) + a(k)) + (a(2) + ... + a(k - 1) + a(k)) + ... + (a(k - 1) + a(k)) + a(k) = f(k - 1) + (k + 1) * a(k)Искомая сумма есть сумма всех f(k).python 3.6:n = int(input())a = enumerate(map(int, input().split()))s = f = 0for k, ak in a:    f += (k + 1) * ak     s += fprint(s) 
    • Автор:

      jamya1no1
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years