#4840
RAU-Gigel și Praștie împodobeau bradul de Crăciun și s-au gândit că ar merge niște colinde. Căutând, au dat de cuvântul “carol”, care evident le-a amintit de orele de informatică. Cu asta și copacul din fața lor în minte, s-au gândit la următoarea problemă, pe care vă roagă să o rezolvați.
Se dă un arbore cu N noduri înrădăcinat în 1 și un șir A de lungime M , cu 1≤A[i]≤N. Definim nivelul unui nod ca fiind distanța față de rădăcină și strămoșul unui nod x ca fiind oricare nod y de pe drumul de la x la rădăcină. De asemenea, lca(V), unde V este un șir, reprezintă nodul de nivel maxim care este strămoș pentru toate nodurile din șirul V. Să se calculeze sumă după lca(V), unde V este fiecare subsecvență a șirului A.
RAU-Coder 2025
| Problema | Allca | Operații I/O |
allca.in/allca.out
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 128 MB
|
| Id soluție | #62384679 | Utilizator | |
| Fișier | allca.cpp | Dimensiune | 2.91 KB |
| Data încărcării | 20 Ianuarie 2026, 01:15 | Scor/rezultat | Eroare de compilare |
allca.cpp:3:3: error: invalid preprocessing directive #Increase # Increase recursion for deep trees ^ allca.cpp:7:7: error: invalid preprocessing directive #Use # Use fast I/O ^ allca.cpp:23:7: error: "1." after # is not a positive integer # 1. Preprocessing Tree (LCA with Binary Lifting) ^ allca.cpp:28:7: error: invalid preprocessing directive #Iterative # Iterative DFS to calculate depths and parent ^ allca.cpp:29:25: error: stray '#' in program stack = [(1, 0, 0)] # node, d, p ^ allca.cpp:54:7: error: "2." after # is not a positive integer # 2. Main logic with Monotonic Stack ^ allca.cpp:57:7: error: invalid preprocessing directive #Stack # Stack stores [node_lca, number_of_ranges] ^ allca.cpp:66:15: error: invalid preprocessing directive #If # If the new LCA is the same as the top of stack, just merge ^ allca.cpp:70:19: error: invalid preprocessing directive #The # The LCA moved up, update current_row_sum and merge ^ allca.cpp:75:11: error: invalid preprocessing directive #Calculate # Calculate LCA for the single element range [i, i] ^ allca.cpp:76:11: error: invalid preprocessing directive #In # In the merge loop, we essentially calculate lca(A[st...i-1], A[i]) ^ allca.cpp:77:11: error: invalid preprocessing directive #We # We need to treat the current element as a node itself ^ allca.cpp:82:11: error: invalid preprocessing directive #Note # Note: The logic above simplifies to: ^ allca.cpp:83:11: error: invalid preprocessing directive #Every # Every element in the stack is an LCA of a range [st...i] ^ allca.cpp:84:11: error: invalid preprocessing directive #We # We replace them as we find higher LCAs ^ allca.cpp:87:7: error: invalid preprocessing directive #Write # Write result ^ allca.cpp:88:15: warning: character constant too long for its type [enabled by default] with open('allca.out', 'w') as f: ^ allca.cpp:91:3: error: invalid preprocessing directive #Example # Example 1 would output 4 ^ allca.cpp:92:3: error: invalid preprocessing directive #Example # Example 3 would output 20 ^ allca.cpp:1:1: error: 'import' does not name a type import sys ^ allca.cpp:20:31: error: 'ptr' does not name a type M = int(input_data[ptr]); ptr += 1 ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Allca face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.