Detalii evaluare #57818391

Rezumat problemă

Se dă un șir a de n numere naturale nenule strict mai mari decât 1, indexat de la 1. Asupra acestui șir se aplică 3 tipuri de operații:

  • 1 st dr val – toate valorile a[i] cu i din intervalul [st, dr] devin egale cu val;
  • 2 st dr – se cere să se afle câte elemente ale șirului a care au indicii aflați în intervalul [st, dr] sunt numere compuse(un număr natural este compus dacă are cel puțin 3 divizori);
  • 3 st dr – se cere să se afișeze lungimea cele mai lungi secvențe de numere prime alcătuită exclusiv din elemente ale șirului care au indicii aflați în intervalul [st, dr](o secvență a unui șir este alcătuită din elemente aflate poziții consecutive).

Dându-se Q operații, să se raspundă în ordine la cele de tip 2 și 3.

Detalii

Problema numbers_tree Operații I/O numbers_tree.in/numbers_tree.out
Limita timp 0.2 secunde Limita memorie Total: 8 MB / Stivă 4 MB
Id soluție #57818391 Utilizator Visanescu Dragos Nicholas (DragosV)
Fișier numbers_tree.cpp Dimensiune 7.85 KB
Data încărcării 21 Aprilie 2025, 18:09 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

numbers_tree.cpp:1:1: error: stray '\304' in program
 Pentru această problemă, trebuie să implementăm un **segment tree** (arbore de intervale) care să gestioneze eficient cele trei tipuri de operații:

 ^
numbers_tree.cpp:1:1: error: stray '\203' in program
numbers_tree.cpp:1:1: error: stray '\304' in program
numbers_tree.cpp:1:1: error: stray '\203' in program
numbers_tree.cpp:1:1: error: stray '\304' in program
numbers_tree.cpp:1:1: error: stray '\203' in program
numbers_tree.cpp:1:1: error: stray '\304' in program
numbers_tree.cpp:1:1: error: stray '\203' in program
numbers_tree.cpp:1:1: error: stray '\304' in program
numbers_tree.cpp:1:1: error: stray '\203' in program
numbers_tree.cpp:1:1: error: stray '\310' in program
numbers_tree.cpp:1:1: error: stray '\233' in program
numbers_tree.cpp:3:1: error: stray '\303' in program
 1. **Setarea valorilor într-un interval** la o valoare dată.

 ^
numbers_tree.cpp:3:1: error: stray '\256' in program
numbers_tree.cpp:3:1: error: stray '\304' in program
numbers_tree.cpp:3:1: error: stray '\203' in program
numbers_tree.cpp:4:1: error: stray '\304' in program
 2. **Numărarea numerelor compuse** dintr-un interval.

 ^
numbers_tree.cpp:4:1: error: stray '\203' in program
numbers_tree.cpp:5:1: error: stray '\310' in program
 3. **Determinarea lungimii celei mai lungi secvențe de numere prime** dintr-un interval.

 ^
numbers_tree.cpp:5:1: error: stray '\233' in program
numbers_tree.cpp:7:1: error: stray '##' in program
 ### Pașii pentru rezolvarea problemei:

 ^
numbers_tree.cpp:7:3: error: stray '#' in program
 ### Pașii pentru rezolvarea problemei:

   ^
numbers_tree.cpp:7:1: error: stray '\310' in program
 ### Pașii pentru rezolvarea problemei:

 ^
numbers_tree.cpp:7:1: error: stray '\231' in program
numbers_tree.cpp:9:1: error: stray '##' in program
 #### 1. **Identificarea numerelor prime și compuse:**

 ^
numbers_tree.cpp:9:3: error: stray '##' in program
 #### 1. **Identificarea numerelor prime și compuse:**

   ^
numbers_tree.cpp:9:1: error: stray '\310' in program
 #### 1. **Identificarea numerelor prime și compuse:**

 ^
numbers_tree.cpp:9:1: error: stray '\231' in program
numbers_tree.cpp:11:1: error: stray '\304' in program
 - **Numere compuse**: Un număr compus este un număr natural care are mai mult de doi divizori.

 ^
numbers_tree.cpp:11:1: error: stray '\203' in program
numbers_tree.cpp:11:1: error: stray '\304' in program
numbers_tree.cpp:11:1: error: stray '\203' in program
numbers_tree.cpp:12:1: error: stray '\304' in program
 - **Numere prime**: Un număr prim este un număr care are exact doi divizori (1 și el însuși).

 ^
numbers_tree.cpp:12:1: error: stray '\203' in program
numbers_tree.cpp:12:1: error: stray '\304' in program
numbers_tree.cpp:12:1: error: stray '\203' in program
numbers_tree.cpp:12:1: error: stray '\310' in program
numbers_tree.cpp:12:1: error: stray '\231' in program
numbers_tree.cpp:12:1: error: stray '\303' in program
numbers_tree.cpp:12:1: error: stray '\256' in program
numbers_tree.cpp:12:1: error: stray '\310' in program
numbers_tree.cpp:12:1: error: stray '\231' in program
numbers_tree.cpp:14:1: error: stray '\304' in program
 Pentru a rezolva problema eficient, trebuie să știm rapid dacă un număr este prim sau compus. De aceea, vom folosi **metoda Eratostene** pentru a marca toate numerele prime până la 1.000.000. Acest lucru ne va permite să răspundem rapid la întrebările de tipul 2.

 ^
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:14:1: error: stray '\310' in program
numbers_tree.cpp:14:1: error: stray '\231' in program
numbers_tree.cpp:14:1: error: stray '\304' in program
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:14:1: error: stray '\304' in program
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:14:1: error: stray '\303' in program
numbers_tree.cpp:14:1: error: stray '\242' in program
numbers_tree.cpp:14:1: error: stray '\304' in program
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:14:188: error: too many decimal points in number
 Pentru a rezolva problema eficient, trebuie să știm rapid dacă un număr este prim sau compus. De aceea, vom folosi **metoda Eratostene** pentru a marca toate numerele prime până la 1.000.000. Acest lucru ne va permite să răspundem rapid la întrebările de tipul 2.

                                                                                                                                                                                            ^
numbers_tree.cpp:14:1: error: stray '\304' in program
 Pentru a rezolva problema eficient, trebuie să știm rapid dacă un număr este prim sau compus. De aceea, vom folosi **metoda Eratostene** pentru a marca toate numerele prime până la 1.000.000. Acest lucru ne va permite să răspundem rapid la întrebările de tipul 2.

 ^
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:14:1: error: stray '\304' in program
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:14:1: error: stray '\303' in program
numbers_tree.cpp:14:1: error: stray '\256' in program
numbers_tree.cpp:14:1: error: stray '\304' in program
numbers_tree.cpp:14:1: error: stray '\203' in program
numbers_tree.cpp:16:1: error: stray '##' in program
 #### 2. **Implementarea Segment Tree:**

 ^
numbers_tree.cpp:16:3: error: stray '##' in program
 #### 2. **Implementarea Segment Tree:**

   ^
numbers_tree.cpp:18:1: error: stray '\304' in program
 Segment tree-ul trebuie să suporte următoarele operații:

 ^
numbers_tree.cpp:18:1: error: stray '\203' in program
numbers_tree.cpp:18:1: error: stray '\304' in program
numbers_tree.cpp:18:1: error: stray '\203' in program
numbers_tree.cpp:18:1: error: stray '\310' in program
numbers_tree.cpp:18:1: error: stray '\233' in program
numbers_tree.cpp:19:1: error: stray '\304' in program
 - **Update**: Setează toate valorile dintr-un interval la o valoare dată.

 ^
numbers_tree.cpp:19:1: error: stray '\203' in program
numbers_tree.cpp:19:1: error: stray '\304' in program
numbers_tree.cpp:19:1: error: stray '\203' in program
numbers_tree.cpp:20:1: error: stray '\304' in program
 - **Query** pentru numărul de numere compuse într-un interval.

 ^
numbers_tree.cpp:20:1: error: stray '\203' in program
numbers_tree.cpp:20:1: error: stray '\303' in program
numbers_tree.cpp:20:1: error: stray '\256' in program
numbers_tree.cpp:21:1: error: stray '\304' in program
 - **Query** pentru găsirea celei mai lungi secvențe de numere prime dintr-un interval.

 ^
numbers_tree.cpp:21:1: error: stray '\203' in program
numbers_tree.cpp:21:1: error: stray '\310' in program
numbers_tree.cpp:21:1: error: stray '\233' in program
numbers_tree.cpp:23:1: error: stray '\303' in program
 În plus, pentru optimizare, vom folosi **lazy propagation** pentru a evita actualizările inutile ale segmentelor.

 ^
numbers_tree.cpp:23:1: error: stray '\216' in program
numbers_tree.cpp:23:1: error: stray '\304' in program
numbers_tree.cpp:23:1: error: stray '\203' in program
numbers_tree.cpp:25:1: error: stray '##' in program
 #### 3. **Structura Segment Tree-ului:**

 ^
numbers_tree.cpp:25:3: error: stray '##' in program
 #### 3. **Structura Segment Tree-ului:**

   ^
numbers_tree.cpp:26:1: error: stray '\310' in program
 Fiecare nod al segment tree-ului va conține:

 ^
numbers_tree.cpp:26:1: error: stray '\233' in program
numbers_tree.cpp:27:1: error: stray '\304' in program
 - Numărul de numere compuse în intervalul respectiv.

 ^
numbers_tree.cpp:27:1: error: stray '\203' in program
numbers_tree.cpp:27:1: error: stray '\303' in program
numbers_tree.cpp:27:1: error: stray '\256' in program
numbers_tree.cpp:28:1: error: stray '\310' in program
 - Lungimea celei mai lungi secvențe de numere prime.

 ^
numbers_tree.cpp:28:1: error: stray '\233' in program
numbers_tree.cpp:29:1: error: stray '\310' in program
 - Lungimea secvenței de numere prime de la stânga și dreapta în interval.

 ^
numbers_tree.cpp:29:1: error: stray '\233' in program
numbers_tree.cpp:29:1: error: stray '\303' in program
numbers_tree.cpp:29:1: error: stray '\242' in program
numbers_tree.cpp:29:1: error: stray '\310' in program
numbers_tree.cpp:29:1: error: stray '\231' in program
numbers_tree.cpp:29:1: error: stray '\303' in program
numbers_tree.cpp:29:1: error: stray '\256' in program
numbers_tree.cpp:31:1: error: stray '##' in program
 #### 4. **Detaliile implementării:**

 ^
numbers_tree.cpp:31:3: error: stray '##' in program
 #### 4. **Detaliile implementării:**

   ^
numbers_tree.cpp:31:1: error: stray '\304' in program
 #### 4. **Detaliile implementării:**

 ^
numbers_tree.cpp:31:1: error: stray '\203' in program
numbers_tree.cpp:33:1: error: stray '\`' in program
 \`\`\`cpp

 ^
numbers_tree.cpp:33:1: error: stray '\`' in program
numbers_tree.cpp:33:1: error: stray '\`' in program
numbers_tree.cpp:1:1: error: 'Pentru' does not name a type
 Pentru această problemă, trebuie să implementăm un **segment tree** (arbore de intervale) care să gestioneze eficient cele trei tipuri de operații:

 ^
numbers_tree.cpp: In function 'int main()':
numbers_tree.cpp:218:16: error: request for member 'update' in 'st', which is of non-class type 'int'
             st.update(st, dr, val);

                ^
numbers_tree.cpp:224:21: error: request for member 'queryCompCount' in 'st', which is of non-class type 'int'
             g << st.queryCompCount(st, dr) << '\n';

                     ^
numbers_tree.cpp:230:21: error: request for member 'queryPrimeSeq' in 'st', which is of non-class type 'int'
             g << st.queryPrimeSeq(st, dr) << '\n';

                     ^

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 numbers_tree face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul 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ă.