4148 - Secv10
Sursa: 4148 - Secv10
Cerinţa
Se dau n numere naturale, reprezentând elementele unui vector. Determinați lungimea maximă a unei secvențe de elemente divizibile cu 10, precum și numărul de secvențe de lungime maximă cu elemente divizibile cu 10.
Date de intrare
Fișierul de intrare secv10.in conține numărul n și n valori naturale, reprezentând elementele vectorului.
Date de ieșire
Fișierul de ieșire secv10.out va conține pe prima linie numerele lmax și c, reprezentând lungimea maximă a unei secvențe de elemente divizibile cu 10, respectiv numărul de secvențe de lungime maximă cu elemente divizibile cu 10.
Restricţii şi precizări
- 0 < n ≤ 10.000
- elementele vectorului vor fi mai mici decât 1.000.000 și există cel puțin un element divizibil cu 10.
Exemplu
- Intrare
- 11
- 12 10 20 30 99 1000 1 20 500 600 5
- Ieșire
- 3 2
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line>
- 4148 - Secv10
with open("secv10.in") as f:
n = int(f.readline()) v = list(map(int, f.read().split()))
max_len = 0 count = 0 current_len = 0
for i in range(n):
if v[i] % 10 == 0: current_len += 1 else: current_len = 0
if current_len >= max_len: if current_len > max_len: max_len = current_len count = 1 else: count += 1
with open("secv10.out", "w") as f:
f.write(str(max_len) + " " + str(count) + "\n")
</syntaxhighlight>