0240 - Max N
Cerința[edit | edit source]
Se dă un şir cu n
numere naturale. Să se determine un alt şir de numere, cu proprietatea că valoarea elementului de pe poziţia i
(1≤i≤n
) din acest şir este egală cu cea mai mare dintre valorile primelor i
elemente din primul şir.
Date de intrare[edit | edit source]
Fişierul de intrare maxn.in
conţine pe prima linie numărul n
, iar pe a următoarele linii n
numere naturale separate prin spaţii.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
Pe următoarea linie se vor afișa n numere, separate prin câte un spaţiu, reprezentând elementele şirului determinat.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 100000
- numerele de pe a doua linie a fişierului de intrare vor avea cel mult
9
cifre
Exemplu 1[edit | edit source]
- Intrare
- 12
- 4 6 3 7 8 1 6 2 7 9 10 8
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 4 6 6 7 8 8 8 8 8 9 10 10
Exemplu 2[edit | edit source]
- Intrare
- -10
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0240 - Max N
def conditii(n, numere):
return len(numere) == n and \ 1 <= n <= 100_000 and \ all(nr <= 999_999_999 for nr in numere)
def max_n(numere):
rezultat = []
# Incepand cu primul element pana la ultimul... for i in range(len(numere)): # ...adaugam in rezultat maximul dintre primele i+1 elemente rezultat.append(max(numere[:i + 1]))
print(" ".join([str(x) for x in rezultat]))
if __name__ == "__main__":
n = int(input()) numere = [int(x) for x in input().split()] if not conditii(n, numere): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") max_n(numere)
</syntaxhighlight>