Pentru realizarea algoritmului am utilizat următoarele variabile:
- x, o variabilă întreagă, prin intermediul căreia citim valorile din fișierul dat, pentru care am alocat 4 octeți;
- s,d, două variabile întregi prin intermediul cărora păstrez limitele intervalului curent, pentru care am alocat 2*4=8 octeți;
- p, o variabilă întreagă, în care păstrez p-ul curent indicat de problemă, pentru care am alocat 4 octeți;
- pm,pM, două variabile întregi, în care păstrez intervalul p-urilor (pm - p minim și pM - p maxim), pentru care pm-interval=pM-interval, pentru care am alocat 2*4=8 octeți.
În concluzie, variabilele folosite utilizează o memorie minimă de 6*4=24 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 prima valoare x din fișier, pentru care am inițializat primul interval [s,d]=[x,x] și pentru care am pregătit primele pm și pM-intervale egale (inițializate cu 1).
Pentru fiecare nouă valoare x, citită din fișier, execut, în ordine, următorii pași:
- inițializez p-ul (să memorăm la cât am ajuns cu p-ul interval);
- verific și actualizez marginile intervalului [s,d], în funcție de noul x citit;
- dacă x este în intervalul deja creat (sunt în situația în care p-interval=p-1-interval), actualizez pm cu p (dacă inițial a fost 1), respectiv în actualizez pe noul pM - în caz contrar.
La final, dacă pM a rămas 1 afișăm mesajul precizat în text "nu exista", în caz contrar afișez cele două valori pm și pM.
Complexitatea algoritmului este N (citirea valorilor din fișier) - de unde rezultă și liniaritatea algoritmului.
EFICIENTIZAREA TIMPULUI DE EXECUȚIE constă în liniaritatea algoritmului, complexitatea ajungând astfel la O(N).
