а там положительные надо, ну тогда sum(i for i in b if i >0) ну для произведения(если я правильно понял задачу) просто брать рейндж между минимумом и максимумом(включительно) и проверять если минимум == 0 то мин+1 for i in range(min(b) if min(b) != 0 else min(b)+1, max(b)+1): total *= i
>для олимпиад лучше си языки ага...а потом когда попадется тебе комба и ты без итертулзов на голом си сидишь и страдаешь))0 (с плюсами получше, там хоть STL есть, и многие алгосы и сд, контейнеры не надо реализовывать ручками)
сайты есть разные для олимпиадного программирования. к примеру: codeforces.ru, acmp.ru - сборники задач. по алгоритмам есть хороший сайт/книга - e-maxx.ru
плюсы используют наверное в силу того, что в олимпиадах тебе зачастую нужно экономное по времени и памяти решение. Плюсы это предоставляют, при чем есть STL и различные абстракции свыше, которые избавляют тебя от ненужных костылей