0520 - Secventa2

De la Universitas MediaWiki
Versiunea din 21 martie 2023 21:15, autor: Flaviu (discuție | contribuții) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/520/secventa2 0520 - Secventa2] ---- == Cerinţa == Se dă un vector x cu n elemente, numere naturale și un vector y cu m elemente, numere naturale. Să se determine de câte ori este vectorul y secvență în vectorul x. == Date de intrare == Programul citește de la tastatură numărul n, iar apoi n numere naturale, elementele vectorului x, apoi numărul m, iar apoi m numere naturale, elementele vectorului y. == Date de ieșire == Pr...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Sursa: 0520 - Secventa2


Cerinţa

Se dă un vector x cu n elemente, numere naturale și un vector y cu m elemente, numere naturale. Să se determine de câte ori este vectorul y secvență în vectorul x.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, elementele vectorului x, apoi numărul m, iar apoi m numere naturale, elementele vectorului y.

Date de ieșire

Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.

Restricţii şi precizări

  • 1 ≤ m ≤ n ≤ 1000

Exemplu

Intrare
10
8 5 8 5 8 3 8 5 8 6
3
8 5 8
Ieșire
3

Rezolvare

Rezolvare ver. 1

# 0520 - Secventa2

n = int(input())
x = list(map(int, input().split()))
m = int(input())
y = list(map(int, input().split()))

count = 0
for i in range(n - m + 1):  # parcurgem vectorul x
    if x[i:i + m] == y:  # verificam daca subsirul y incepe aici
        count += 1

print(count)