0516 - SumSec1

De la Universitas MediaWiki
Versiunea din 21 martie 2023 20:52, autor: Flaviu (discuție | contribuții) (Pagină nouă: Sursa: https://www.pbinfo.ro/probleme/516/sumsec1 0516 - SumSec1] ---- == Cerinţa == Se dă un vector format din n elemente, numere naturale. Calculați suma elementelor din secvența determinată de primul și ultimul element impar. == Date de intrare == Programul va citi de la tastatură numărul n, apoi cele n elemente ale vectorului. == Date de ieșire == Programul va fișa pe ecran numărul S, reprezentând suma calculată. == Restricţii şi precizări == * 1 ≤ n...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Sursa: https://www.pbinfo.ro/probleme/516/sumsec1 0516 - SumSec1]


Cerinţa

Se dă un vector format din n elemente, numere naturale. Calculați suma elementelor din secvența determinată de primul și ultimul element impar.

Date de intrare

Programul va citi de la tastatură numărul n, apoi cele n elemente ale vectorului.

Date de ieșire

Programul va fișa pe ecran numărul S, reprezentând suma calculată.

Restricţii şi precizări

  • 1 ≤ n ≤ 1000
  • elementele vectorului vor fi mai mici decât 1.000.000
  • vectorul va conţine cel puțin un element impar

Exemplu

Intrare
8
12 10 15 6 7 10 19 14
Ieșire
5 4

Rezolvare

Rezolvare ver. 1

# 0516 - SumSec1

n = int(input("Introduceți numărul de elemente din vector: "))
v = list(map(int, input("Introduceți elementele vectorului: ").split()))

# Căutăm primul și ultimul element impar din vector
first_odd = -1
last_odd = -1
for i in range(n):
    if v[i] % 2 == 1:
        if first_odd == -1:
            first_odd = i
        last_odd = i

# Calculăm suma elementelor din secvența dată
sum = 0
if first_odd != -1 and last_odd != -1:
    for i in range(first_odd, last_odd + 1):
        sum += v[i]

# Afisăm suma
print(sum)