Редакция для Сумма элементов
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
1. Идея
Нужно найти сумму всех элементов массива.
Дано n чисел a_i, каждое число показывает количество товара в отдельной ячейке. Общее количество товара на складе — это просто сумма всех этих значений.
Значит, задача решается прямым проходом по массиву: читаем числа и постепенно добавляем их к ответу.
2. Наблюдения
- Требуется всего одно число:
a_1 + a_2 + ... + a_n. - Элементы могут быть отрицательными, поэтому нельзя, например, брать только положительные.
- По условию ответ может не помещаться в 32-битный тип, поэтому в C++ нужно использовать
long long. - Никаких сложных структур данных не требуется.
3. Алгоритм
- Считать число
n. - Завести переменную
sum, изначально равную0. - Считать
nчисел. - Каждое считанное число прибавлять к
sum. - Вывести
sum.
В Python можно считать всю вторую строку списком и воспользоваться встроенной функцией sum.
4. Почему это работает
По определению суммы массива нужно сложить все его элементы.
Алгоритм делает ровно это:
- после чтения первого числа в
sumхранится сумма первого элемента; - после чтения двух чисел — сумма первых двух;
- и так далее;
- после обработки всех
nчисел вsumбудет сумма всего массива.
То есть итоговое значение точно совпадает с требуемым ответом.
5. Сложность
- Время:
O(n), потому что каждое число обрабатывается один раз. - Память:
O(1)для решения на C++, так как числа можно суммировать сразу при чтении;O(n)для приведённого решения на Python, потому что оно сохраняет все числа в список.
6. Код на C++17
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
long long sum = 0;
for (int i = 0; i < n; i++) {
long long x;
cin >> x;
sum += x;
}
cout << sum << '\n';
return 0;
}
7. Код на Python 3
n = int(input())
a = list(map(int, input().split()))
print(sum(a))
Комментарии