0605 - CRB

From Bitnami MediaWiki
Revision as of 08:07, 7 November 2023 by Zmicala Narcis (talk | contribs) (Pagină nouă: == Cerinţa == CRB are un șir cu '''n''' numere naturale diferite. Nu știe ce să facă cu ele și le aranjează în ordine descrescătoare. Apoi observă că anumite numere se află pe aceeași poziție ca în șirul inițial. Ajutați pe CRB să determine câte elemente din șir respectă această regulă. == Date de intrare == Fișierul de intrare '''crb.in''' conține pe prima linie numărul '''n''', iar pe a doua linie '''n''' numere naturale separate prin spații, rep...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

CRB are un șir cu n numere naturale diferite. Nu știe ce să facă cu ele și le aranjează în ordine descrescătoare. Apoi observă că anumite numere se află pe aceeași poziție ca în șirul inițial. Ajutați pe CRB să determine câte elemente din șir respectă această regulă.

Date de intrare

Fișierul de intrare crb.in conține pe prima linie numărul n, iar pe a doua linie n numere naturale separate prin spații, reprezentând elementele șirului inițial.

Date de ieşire

Fișierul de ieșire crb.out va conține pe prima linie numărul C, reprezentând numărul de elemente care ocupă aceeași poziție în șirul inițial și în cel sortat.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 1.000.000

Exemplu

crb.in
7
1 8 2 6 4 7 9
crb.out
3

Explicație

Cele trei elemente sunt 8, 6 și 4.

Rezolvare

<syntaxhighlight lang="python" line> def numar_elemente(input_file, output_file):

   with open(input_file, 'r') as fisier:
       n = int(fisier.readline())
       sir_initial = [int(numar) for numar in fisier.readline().split()]
   # Creăm o copie a șirului inițial și o sortăm în ordine descrescătoare
   sir_sortat = sorted(sir_initial, reverse=True)
   # Numărăm câte elemente din șirul inițial se află pe aceeași poziție cu elementul corespunzător din șirul sortat
   numar_elemente = sum(1 for i in range(n) if sir_initial[i] == sir_sortat[i])
   with open(output_file, 'w') as fisier:
       fisier.write(str(numar_elemente))

if __name__ == "__main__":

   numar_elemente('crb.in', 'crb.out')

</syntaxhighlight>