a) Programul citeste numere din fisier, iar daca numarul curent este impar, se salveaza in z, y fiind rescris cu valoarea lui z, pentru a retine ultimul numar impar citit drept penultimul. La final, daca y este -1, sau z, se afiseaza "nu exista", altfel se vor afisa numerele cerute. Algoritmul este eficient din punct de vedere al memoriei utilizate deoarece foloseste un numar restrans de variabile simple. Este eficient si din punct de vedere al timpului de executare deoarece rezolva problema liniar, rezultand o complexitate O(n), n fiind numarul de numere din fisier.
b)
#include<iostream>
#include<fstream>
using namespace std;
int main(){
int x,y=-1,z=-1;
ifstream f("bac.txt");
while(f>>x)
if(x%2==1){
y=z;
z=x;
}
f.close();
if(y==-1||z==-1)
cout<<"nu exista";
else
cout<<y<<' '<<z;
return 0;
}