Pentru realizarea algoritmului am utilizat următoarele variabile:
- x - valoarea citită din fișier la un moment dat, pentru care am alocat 4 octeți;
- p - poziția valorii citită din fișier la un moment dat, pentru care am alocat 4 octeți;
- m - maximul dintre valorile citite din fișier la un moment dat, pentru care am alocat 4 octeți.
În concluzie, variabilele folosite utilizează o memorie de 3*4=12 octeți, de unde rezultă EFICIENTA UTILIZĂRII MEMORIEI (pe lângă variabila utilizată pentru fișier).

În prima parte a algoritmului am declarat m (inițializat cu -1), p și x. Pentru fiecare valoare x citită din fișierul <bac.txt>, am actualizat prin incrementarea cu 1: p. Imediat după aceea verific dacă x>|m| (modul de m); în caz afirmativ - afișez p urmat de spațiu și-i atribui lui m valoarea lui x; în caz contrar:

verific dacă x=|m|, în caz afirmativ afișez p urmat de spațiu și-i atribui lui m valoarea lui x, dacă x!=m; în caz contrar - îi pun semnul "-" lui m, pentru a nu repeta la fiecare valoare x consecutivă poziția în momentul afișării acesteia.

Prin parcurgerea secvențială a valorilor din fișier, o singură dată, la citire, am EFICIENTIZAT TIMPUL DE EXECUȚIE, algoritmul fiind unul liniar, complexitatea algoritmului fiind maxim N (unde N este numărul de valori din fișier), adică O(N), de unde rezultă liniaritatea algoritmului.

