Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int main(void)
{
int n, i, cnt=0, aux, fv[10000] = {0};
cin >> n;
int *v = new int[n];
for(i = 0; i < n; i++) {
cin >> aux;
fv[aux]++;
}
for(i = 0; i <= 10000; i++) {
if(!fv[i]) {
continue;
} else if(fv[i] == 2) {
v[n/2 - cnt - 1] = v[n/2 + cnt] = i;
cnt++;
} else {
cout << -1;
return 0;
}
}
for(i = 0; i < n; i++)
cout << v[i] << ' ';
return 0;
}
Explicație:
1. Cred ca nu ai introdus toate restrictiile, fiindca nu se precizeaza cat de mari pot fi numerele din vector, asa ca am considerat 10000 maximul.
2. Te las pe tine sa pui ofstream si ifstream pentru fisier, eu am facut cu cin si cout.
3. Cand ai spus numere "descrescatoare", am considerat ca numerele nu pot fi egale (de exemplu, 3 3 2 2 3 3 va fi un vector invalid).
Oricum, sper ca te-am ajutat la aceasta problema!
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că ați găsit conținutul oferit util și inspirațional. Dacă aveți întrebări suplimentare sau doriți asistență, vă încurajăm să ne contactați. Ne-ar face plăcere să reveniți și nu uitați să ne adăugați în lista dumneavoastră de favorite!