0578 - SecvEgale2: Diferență între versiuni
De la Universitas MediaWiki
(Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/524/secvegale1 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 * elem...) |
Fără descriere a modificării |
||
Linia 25: | Linia 25: | ||
# 0578 - SecvEgale2 | # 0578 - SecvEgale2 | ||
n = int(input()) | def read_input(): | ||
v = list(map(int, input().split())) | n = int(input()) | ||
v = list(map(int, input().split())) | |||
return v | |||
def count_equal_sequences(v): | |||
cnt = 0 | |||
for i in range( | 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 | |||
print(" | 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> | </syntaxhighlight> |
Versiunea de la data 17 aprilie 2023 19:56
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
# 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")