Pentru realizarea algoritmului am utilizat 7 variabile de tip întreg, pentru care am alocat 7*4=28 de octeți:
- k - cu rolul precizat de problemă (lungimea piramidală)
- ki - calculul unui k intermediar (lungimea piramidală intermediară)
- a, b, x - memorarea numerelor diferite consecutiv, la un moment dat, în această ordine
- na, nb - numărul aparițiilor lui a, respectiv a lui b la un moment dat.
În concluzie, variabilele folosite utilizează o memorie de 28 de octeți, de unde rezultă EFICIENȚA UTILIZĂRII MEMORIEI (pe lângă variabila utilizată pentru fișier).

Algoritmul începe prin declararea globală a variabilelor și implicit actualizarea lro cu 0, mai puțin valoarea lui a=-1, după care trecem la citirea primului număr, depozitarea lui în b și actualizarea lui nb=1 (prima apariție). La fiecare citire a unui nou număr (în x), dacă acest număr este identic cu cel din fața lui, incrementăm nb cu 1. În caz contrar, verificăm dacă na+1=nb și a<b, actualizând indicele intermediar ki (lungimea piramidală), în caz contrar îl inițializăm cu 0. După aceasta actualizăm indicele k finală, dacă se impune. Întrucât am trecut la o nouă valoarea a=b, na=nb, b=x și nb=1. Repetăm aceste operații atâta timp cât mai există numere în fișier. La final, mai verificăm dacă trebuie actualizată valoarea/indicele ki și imediat după, indicele k. Transformăm indicele k din lungime piramidală în lungime subșir, după care afișăm valoarea solicitată în problemă și închidem fișierul din care s-a făcut citirea.
În acest fel am EFICIENTIZAT TIMPUL DE EXECUȚIE, algoritmul fiind unul liniar, complexitatea algoritmului fiind maxim N (lungimea caracterelor din fișierul precizat în enunț) = O(N), de unde rezultă liniaritatea algoritmului.