Răspuns :
#include <iostream>
#include <fstream>
using namespace std;
ifstream a("numere.in");
int main()
{
int n, suma=0;
a >> n;
int tablou_unid[n];
for (int i=0; i<n; i++)
a >> tablou_unid[i];
for (int i=0; i<n; i++)
{
int numar_curent=tablou_unid[i];
while (numar_curent!=0)
{
if (numar_curent%10==5)
{
suma=suma+tablou_unid[i];
numar_curent=0;
}
numar_curent=numar_curent/10;
}
}
for (int i=0; i<n; i++)
cout << tablou_unid[i] << " ";
cout << endl;
//creez alt tablou pentru cerinta c), noul tablou are evident un element in plus
int tablou[n+1];
int adresa_minim=0;
for (int i=0; i<n; i++)
{
tablou[i]=tablou_unid[i];
if (tablou[adresa_minim]>tablou[i])
adresa_minim=i;
}
for (int i=n-1; i>adresa_minim; i--)
tablou[i+1]=tablou[i];
tablou[adresa_minim+1]=2*tablou[adresa_minim];
for (int i=0; i<n+1; i++)
cout << tablou[i] << " ";
cout << endl;
//creez alt tablou pentru cerinta d)
//noul tablou are nevoie de 2n elemente
//pentru cazul in care fiecare element este par
int tablou2[2*n];
for (int i=0; i<n; i++)
tablou2[i]=tablou_unid[i];
int noul_n=n;
for (int i=0; i<noul_n; i++)
{
if (tablou2[i]%2==0)
{
int invers=0, numarcurent=tablou2[i];
for (int j=noul_n; j>i; j--)
{
tablou2[j+1]=tablou2[j];
}
noul_n=noul_n+1;
while (numarcurent!=0)
{
invers=invers*10+numarcurent%10;
numarcurent=numarcurent/10;
}
tablou2[i+1]=invers;
i++;
}
}
for (int i=0; i<noul_n; i++)
cout << tablou2[i] << " " ;
cout << endl;
return 0;
}