Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2008-03-02 21:35:24.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:aib.in, aib.outSursăad-hoc
AutorArhiva EducationalaAdăugată decos_minBondane Cosmin cos_min
Timp execuţie pe test0.175 secLimită de memorie5120 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Arbori indexati binar

Se da un vector A cu N elemente naturale. Asupra lui se vor face M operatii, codificate astfel in fisierul de intrare:
• 0 a b - Sa se determine suma valorilor elementelor intervalului [a,b].
• 1 a b - Valorii elementului de pe pozitia a ii se va adauga valoarea b.

Date de intrare

Pe prima linie a fisierului de intrare se afla N si M. Pe urmatoarea linie se gasesc cele N elemente ale vectorului, iar urmatoarele M linii descriu operatia care trebuie efectuata.

Date de iesire

Pentru fiecare operatie de tip 0, se va afisa pe cate o linie suma elementelor pentru intervalul cerut (in ordinea ceruta in fisierul de intrare).

Restrictii

  • 1N, M50 000
  • 1 ≤ Ai10 000 pentru 1 ≤ i ≤ N
  • Pentru operatia de tip 0: 1abN
  • Pentru operatia de tip 1: 1aN si 1b10 000
  • Rezultatul se va incadra pe 32 de biti

Exemplu

aib.inaib.out
6 5
3 8 4 7 8 8
0 1 5
0 6 6
1 4 4
1 2 9
1 1 9
30
8

Solutie

O rezolvare brute a problemei ar obtine in jur de 30 puncte si o poti gasi aici. Solutia optima pentru rezolvare a problemei are complexitate O(MlogN) si se poate realiza prin intermediul arborilor indexati binar. O solutie de 100 puncte pe ideea aceasta gasesti aici.

Probleme similare

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?