Pentru realizarea algoritmului am utilizat următoarele variabile:
- a, de tip short, pentru care am alocat 2 octeți, variabila prin intermediul căreia citesc rând pe rând valorile din fișier;
- c_max, de tip short, pentru care am alocat 2 octeți, variabilă în care voi memora cifra maximă existentă în numerele din fișier;
- p, de tip short, pentru care am alocat 2 octeți, variabilă în care voi memora primul număr care are cifra maximă întâlnită până la poziția curentă;
- u, de tip short, pentru care am alocat 2 octeți, variabilă în care voi memora ultimul număr care are cifra maximă întâlnită până la poziția curentă.
În concluzie, variabilele folosite utilizează o memorie de 4*2=8 octeți, de unde rezultă EFICIENȚA UTILIZĂRII MEMORIEI (pe lângă variabila utilizată pentru fișier).

În prima parte a algoritmului am declarat variabilele global. Pentru fiecare număr a, citit din fișier:
a) am verificat dacă are una din cifre mai mare decât c_max (inițializată cu -1);
b) dacă a are o cifră mai mare decât c_max, am actualizat: c_max cu noua cifră, p - primul număr care conține acea cifră cu a și u - ultimul număr care conține acea cifră cu -1;
c) în caz contrar, am verificat dacă a conține cifra maximă, caz în care am actualizat u - cu valoarea a citită din fișier.
După ce toate numerele au fost prelucrate, am verificat dacă u a rămas -1 sau p a rămas -1 sau p a rămas -1, caz în care ”nu există” în fișier astfel de valori, pentru afișarea mesajului corespunzător.
În caz contrar, afișez cele două valori găsite, respectiv p și u.
EFICIENTIZAREA TIMPULUI DE EXECUȚIE rezultă din liniaritatea algoritmului, complexitatea algoritmului fiind maxim N (unde N este numărul de valori citite din fișier), adică O(N).


