0578 - SecvEgale2
Sursa: 0578 - SecvEgale2
Cerinţa
Se dă un vector cu n elemente, numere naturale. Determinați câte secvențe ale vectorului au toate elementele egale.
Date de intrare
Programul citește de la tastatură numărul n, apoi cele n elemente ale vectorului.
Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.
Restricţii şi precizări
- 1 ≤ n ≤ 100.000
- elementele vectorului vor fi mai mici decât 1.000.000.000
Exemplu
- Intrare
- 5
- 4 3 3 3 5
- Ieșire
- 8
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line>
- 0578 - SecvEgale2
def read_input():
n = int(input()) v = list(map(int, input().split())) return v
def count_equal_sequences(v):
cnt = 0 last = None seq_len = 0 for i in range(len(v)): if v[i] != last: if seq_len >= 2: cnt += 1 seq_len = 1 last = v[i] else: seq_len += 1 if seq_len >= 2: cnt += 1 return cnt
def validate_output(expected, actual):
return expected == actual
if __name__ == '__main__':
v = read_input() result = count_equal_sequences(v) expected = int(input()) if validate_output(expected, result): print("Corect") else: print("Incorect")
</syntaxhighlight>