0519 - Secventa1

From Bitnami MediaWiki
Revision as of 21:12, 21 March 2023 by Flaviu (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/519/secventa1 0519 - Secventa1] ---- == Cerinţa == Se dă un vector x cu n elemente, numere naturale și un vector y cu m elemente, numere naturale. Să se verifice dacă vectorul y este 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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: 0519 - Secventa1


Cerinţa

Se dă un vector x cu n elemente, numere naturale și un vector y cu m elemente, numere naturale. Să se verifice dacă vectorul y este 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 p, reprezentând poziția din vectorul x de unde începe secvența y, dacă y este secvență în x, respectiv mesajul NU dacă y nu este secvență în x.

Restricţii şi precizări

  • 1 ≤ m ≤ n ≤ 1000
  • elementele celor doi vectori vor fi indexate de la 1
  • dacă vectorul y este de mai multe ori secvență în x se va afișa poziția de început a primei apariții

Exemplu

Intrare
10
8 5 8 5 2 3 10 7 1 6
6
8 5 2 3 10 7
Ieșire
3

Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line>

  1. 0519 - Secventa1

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

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

for i in range(n - m + 1):

   if x[i:i+m] == y:
       print(i+1)
       break

else:

   print("NU")

</syntaxhighlight>