3587 - Duplicat

From Bitnami MediaWiki
Revision as of 09:25, 16 December 2023 by Mesarosdenisa (talk | contribs) (Pagină nouă: == Cerinta == Se dau un număr n și n+1 numere naturale cuprinse între 1 și n inclusiv. Cerința 1: Pentru un număr k citit, să se afișeze al k-lea termen al șirului citit anterior. Cerința 2: Știind că dintre cele n+1 numere citite, un singur număr se poate repeta, se cere să se afișeze acest număr. == Date de intrare == Programul citește de la tastatură numărul n pe prima linie, iar apoi, pe a doua linie n+1 numere naturale, separate prin spații. Pe a t...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinta

Se dau un număr n și n+1 numere naturale cuprinse între 1 și n inclusiv. Cerința 1: Pentru un număr k citit, să se afișeze al k-lea termen al șirului citit anterior. Cerința 2: Știind că dintre cele n+1 numere citite, un singur număr se poate repeta, se cere să se afișeze acest număr.

Date de intrare

Programul citește de la tastatură numărul n pe prima linie, iar apoi, pe a doua linie n+1 numere naturale, separate prin spații. Pe a treia linie se va afla numărul k.

Date de iesire

Programul va afișa pe ecran pe prima linie răspunsul pentru cerința 1, iar pe a doua linie răspunsul pentru cerința 2.

Restrictii si precizari

  • 1 ≤ n ≤ 470000
  • Pentru cerința 2, un singur număr se poate repeta de mai multe ori
  • Atenție la limita de timp și de memorie !!!

Exemplul 1

Intrare
5
1 2 3 3 4 5
2
Iesire
Datele introduse corespund restrictiilor impuse
2
3

Exemplul 2

Intrare
-5
1 5 0 2 2 2.6
4
Iesire
Datele introduse nu corespund restrictiilor impuse


Rezolvare

<syntaxhighlight lang="python3" line="1"> def main():

   # Citirea datelor de intrare
   n = int(input("Introduceti numarul n: "))
   numere = list(map(int, input("Introduceti n+1 numere separate prin spatii: ").split()))
   k = int(input("Introduceti numarul k: "))
   # Cerința 1: Afișarea k-lea termen al șirului
   termen_k = numere[k - 1]
   print(f"Al {k}-lea termen al sirului este: {termen_k}")
   # Cerința 2: Afișarea numărului care se repetă
   numar_repetat = None
   numere_set = set()
   for numar in numere:
       if numar in numere_set:
           numar_repetat = numar
           break
       numere_set.add(numar)
   print(f"Numarul care se repeta este: {numar_repetat}")

if __name__ == "__main__":

   main()

</syntaxhighlight>

Explicatie

Al doilea numar din șir este 2, iar numărul 3 se repeta.