Răspuns :
a)
Programul citeste din fisier un numar n si n numere. Acesta, la fiecare pas, calculeaza maximul dintre numerele citite si il afiseaza. Algoritmul este eficient din punct de vedere al memorie utilizate deoarece foloseste un numar restrans de variabile simple. Este eficient si din punct de vedere al timpului de executare deoarece citeste numerele din fisier o singura data, in acelasi timp rezolvand si cerinta ceruta, rezultand o complexitate liniara O(n) unde n este numarul de numere, citit din fisier.
b)
#include<iostream>
#include<fstream>
using namespace std;
int main(){
int maxcurent=-1,n,i;
ifstream f("bac.txt");
f>>n;
while(n!=0){
f>>i;
if(i>maxcurent)
maxcurent=i;
cout<<maxcurent<<' ';
n--;
}
f.close();
return 0;
}