Pentru realizarea algoritmului am utilizat următoarele variabile:
- n1,n2,n3 - 3 variabile pentru a memora primele 3 valori în ordine descrescătoare din șirul dat, pentru care am alocat 3*4=12 octeți;
- p1,p2,p3 - 3 variabile pentru a memora primele 3 poziții ale primelor 3 valori în ordine descrescătoare din șirul dat, pentru care am alocat 3*4=12 octeți;
- x - o variabilă prin intermediul căreia am citit valorile din fișier, valoare pe care am păstrat-o fie în n1, fie în n2, fie în n3, pentru care am alocat 4 octeți;
- px - poziția la care am ajuns cu citirea lui x din fișier, pentru care am alocat 4 octeți.
În concluzie, variabilele folosite utilizează o memorie de 12+12+4+4=32 de octeți, de unde rezultă EFICIENȚA UTILIZĂRII MEMORIEI (pe lângă variabila utilizată pentru fișier).

În prima parte a algoritmului, după declararea variabilelor, am citit din fișier valoarea x, iar pentru fiecare valoare citită, am incrementat poziția pe care se află px. Ordinea descrescătoare a valorilor x posibile le-am păstrat în n1, n2 și n3 (în această ordine). Am comparat valoarea x citită cu aceste valori, păstrând valorile x de interes și pozițiile pe care acestea se găsesc în șirul citit din fișier. 
La final, am afișat cele 3 poziții ale valorilor în ordinea descrescătoare, citite din fișier.
EFICIENTIZAREA TIMPULUI DE EXECUȚIE constă în liniaritatea algoritmului, complexitatea ajungând la px = O(C) = C, care în final va indica numărul de valori citite din fișier.