Detalii evaluare #64597734

Rezumat problemă

#4685

Scrieți o funcție care va șterge dintr-o listă dublu înlănțuită primul nod care memorează valoarea A și ultimul nod care memorează valoarea B.

Detalii

Problema LdiStergeAB Operații I/O ldistergeab.in/ldistergeab.out
Limita timp 0.1 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #64597734 Utilizator Sangeorzan Lucian (Lucian048)
Fișier ldistergeab.cpp Dimensiune 8.12 KB
Data încărcării 17 Mai 2026, 21:40 Scor/rezultat Eroare de compilare

Evaluare

Mesaj compilare

ldistergeab.cpp:80:8: error: extended character → is not valid in an identifier
   80 | z = p; → z pointează la nod.
      |        ^
ldistergeab.cpp:82:14: error: extended character → is not valid in an identifier
   82 | z = nullptr; → pierzi adresa nodului.
      |              ^
ldistergeab.cpp:84:11: error: extended character → is not valid in an identifier
   84 | delete z; → faci delete nullptr, care nu face nimic.
      |           ^
ldistergeab.cpp:112:1: error: extended character → is not valid in an identifier
  112 | → segmentation fault.
      | ^
ldistergeab.cpp:178:19: error: extended character „ is not valid in an identifier
  178 | Dacă intenția era „șterge toate nodurile dintre A și B”, nu doar nodurile A și B, atunci funcția trebuie făcută diferit.
      |                   ^
ldistergeab.cpp:178:54: error: extended character ” is not valid in an identifier
  178 | Dacă intenția era „șterge toate nodurile dintre A și B”, nu doar nodurile A și B, atunci funcția trebuie făcută diferit.
      |                                                      ^
ldistergeab.cpp:402:26: error: extended character ≥ is not valid in an identifier
  402 | Acum, cu ipotezele tale (≥2 elemente, A != B), funcția este corectă.
      |                          ^
ldistergeab.cpp:70:1: error: ‘Codul’ does not name a type
   70 | Codul tău încearcă să șteargă nodul cu valoarea A și nodul cu valoarea B dintr-o listă dublu înlănțuită, dar are câteva bug-uri serioase care pot produce memory leaks sau acces invalid la memorie.
      | ^~~~~
ldistergeab.cpp:72:35: error: ‘nu’ does not name a type
   72 | 1. Problema principală: delete z; nu șterge nimic
      |                                   ^~
ldistergeab.cpp:76:1: error: ‘z’ does not name a type
   76 | z = nullptr;
      | ^
ldistergeab.cpp:77:1: error: expected unqualified-id before ‘delete’
   77 | delete z;
      | ^~~~~~
ldistergeab.cpp:78:5: error: found ‘:’ in nested-name-specifier, expected ‘::’
   78 | Aici:
      |     ^
      |     ::
ldistergeab.cpp:78:1: error: ‘Aici’ does not name a type
   78 | Aici:
      | ^~~~
ldistergeab.cpp:80:8: error: ‘→’ does not name a type
   80 | z = p; → z pointează la nod.
      |        ^
ldistergeab.cpp:82:14: error: ‘→’ does not name a type
   82 | z = nullptr; → pierzi adresa nodului.
      |              ^
ldistergeab.cpp:84:11: error: ‘→’ does not name a type
   84 | delete z; → faci delete nullptr, care nu face nimic.
      |           ^
ldistergeab.cpp:91:1: error: expected unqualified-id before ‘delete’
   91 | delete z;
      | ^~~~~~
ldistergeab.cpp:92:1: error: ‘fără’ does not name a type
   92 | fără z = nullptr înainte.
      | ^~~~
ldistergeab.cpp:98:1: error: ‘dar’ does not name a type
   98 | dar ultim rămâne vechea adresă.
      | ^~~
ldistergeab.cpp:103:1: error: ‘ultim’ does not name a type
  103 | ultim->urm = nullptr;
      | ^~~~~
ldistergeab.cpp:104:1: error: expected unqualified-id before numeric constant
  104 | 3. La ștergerea primului element, posibil crash
      | ^~
ldistergeab.cpp:108:1: error: ‘prim’ does not name a type
  108 | prim->ant = nullptr;
      | ^~~~
ldistergeab.cpp:109:1: error: ‘Dacă’ does not name a type
  109 | Dacă lista are un singur element, p->urm este nullptr, deci:
      | ^~~~
ldistergeab.cpp:117:1: error: expected unqualified-id before ‘if’
  117 | if(prim)
      | ^~
ldistergeab.cpp:119:1: error: expected unqualified-id before ‘else’
  119 | else
      | ^~~~
ldistergeab.cpp:121:1: error: expected unqualified-id before numeric constant
  121 | 4. La ștergerea ultimului element, aceeași problemă
      | ^~
ldistergeab.cpp:125:1: error: ‘dar’ does not name a type
  125 | dar p->ant este nullptr.
      | ^~~
ldistergeab.cpp:168:9: error: found ‘:’ in nested-name-specifier, expected ‘::’
  168 | Avantaje:
      |         ^
      |         ::
ldistergeab.cpp:168:1: error: ‘Avantaje’ does not name a type
  168 | Avantaje:
      | ^~~~~~~~
ldistergeab.cpp:230:1: error: ‘E’ does not name a type
  230 | E mai bine decât versiunea anterioară, dar încă are câteva bug-uri importante.
      | ^
ldistergeab.cpp:239:1: error: ‘ai’ does not name a type
  239 | ai actualizat doar legătura înainte (urm), dar nu și cea înapoi (ant).
      | ^~
ldistergeab.cpp:245:1: error: ‘Altfel’ does not name a type
  245 | Altfel lista se strică.
      | ^~~~~~
ldistergeab.cpp:251:1: error: ‘prim’ does not name a type
  251 | prim->ant = nullptr;
      | ^~~~
ldistergeab.cpp:252:1: error: ‘Dacă’ does not name a type
  252 | Dacă p->urm == nullptr, faci dereferențiere de nullptr.
      | ^~~~
ldistergeab.cpp:258:1: error: expected unqualified-id before ‘if’
  258 | if(prim)
      | ^~
ldistergeab.cpp:260:1: error: expected unqualified-id before ‘else’
  260 | else
      | ^~~~
ldistergeab.cpp:262:1: error: expected unqualified-id before numeric constant
  262 | 3. Crash la ștergerea lui B dacă lista are un singur element
      | ^~
ldistergeab.cpp:266:1: error: ‘ultim’ does not name a type
  266 | ultim = p->ant;
      | ^~~~~
ldistergeab.cpp:267:1: error: ‘Dacă’ does not name a type
  267 | Dacă p->ant == nullptr, crash.
      | ^~~~
ldistergeab.cpp:316:1: error: ‘Observă’ does not name a type
  316 | Observă că exact aceeași logică merge pentru:
      | ^~~~~~~
ldistergeab.cpp:339:1: error: expected unqualified-id before ‘else’
  339 | else
      | ^~~~
ldistergeab.cpp:344:1: error: ‘Dacă’ does not name a type
  344 | Dacă A este în mijlocul listei, actualizezi doar:
      | ^~~~
ldistergeab.cpp:347:1: error: ‘dar’ does not name a type
  347 | dar nodul din dreapta încă are:
      | ^~~
ldistergeab.cpp:356:1: error: ‘exact’ does not name a type
  356 | exact cum ai făcut la B.
      | ^~~~~
ldistergeab.cpp:402:1: error: ‘Acum’ does not name a type
  402 | Acum, cu ipotezele tale (≥2 elemente, A != B), funcția este corectă.
      | ^~~~

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema LdiStergeAB face parte din a doua categorie. Pentru aceste probleme se folosește un program suport, furnizat de propunătorul problemei. Soluția propusă de tine va fi evaluată astfel:

  • Soluția propusă de tine este inclusă în programul suport, apoi acesta este compilat. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Datorită existenței programului suport, la compilare pot să apară erori sau avertismente care să nu se refere la instrucțiunile scrise de tine, dar care sunt datorate faptului că soluția ta nu este corectă.
  • Dacă programul suport a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.

Du-te sus!