Informatică, întrebare adresată de ciprian74, 8 ani în urmă

Salut! Va rog mult sa ma ajutati cu niste explicatii la fiecare linie de cod c++ la problema #1883 de pe pbinfo, ca sa o pot intelege!
Am sa atasez codul, care este 100% functional:

Anexe:

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Problema este foarte simpla, asa ca sa o luam cu inceputul.

  • In primul rand, din solutia prezentata ne dam seama ca vom avea nevoie de: un vector de citit, o valoare maxima cat si un vector in care vom stoca solutiile fiecarui numar.
  • Primul for citeste vectorul cu numere, iar in al 2 lea for se intampla "magia". Prima data se verifica daca elementul curent este mai mic decat cel din fata sa, daca este atunci solutia este chiar elementul din fata sa, in caz contrar consideram valoarea maxima ca fiind elementul curent, iar cu un for de la i+1 (urmatorul element) cautam primul element mai mare decat cel curent, adica v[i]
  • Cand for ul se termina, verificam daca valoarea este aceeasi cu elementul curent, adica v[i], daca este atunci sol[i] devine -1, altfel inseamna ca am gasit numarul dorit asa ca il putem stoca in sol[i] caruia ii atribuim valoarea maxi
  • In final, dat fiindca ultimul element nu are un alt element dupa acesta (nu degeaba se cheama ultimul element) sol[n] va primi -1 in toate cazurile
  • Ultimul for afiseaza vectorul de solutii

ciprian74: Multumesc!
Alte întrebări interesante