307
Se dă un vector cu n
elemente numere întregi.
Cerinţa
Să se ordoneze crescător elementele unui vector crescător după prima cifră.
Date de intrare
Fişierul de intrare sortcif2.in
conţine pe prima linie numărul n
si pe a doua linie n
numere întregi separate prin spaţii.
Date de ieşire
Fişierul de ieşire sortcif2.out
va conţine pe prima linie cele n
elemente ale vectorului, ordonate conform cerinței, separate printr-un spațiu.
Restricţii şi precizări
0 < n ≤ 100
- valoarea absolută a numerelor de pe a doua linie a fişierului de intrare va fi mai mică decât 2 30
Exemplu
sortcif2.in
6 89 2246 91 4005 51 721
sortcif2.out
2246 4005 51 721 89 91
#include <bits/stdc++.h> using namespace std; ifstream fin("sortcif2.in"); ofstream fout("sortcif2.out"); int sum(int n) { int c=0; while (n) { c=n%10; n/=10; } return c; } int main() { int n; fin >> n; int a[1001]; int v[1001]; int p[1001]; for (int i = 0 ; i < n; ++i) { fin >> a[i]; v[i]=sum(a[i]); } sort(v,v+n); for (int i = 0 ; i < n ; ++i) { int cnt=0; for (int j = 0 ; j < n ; ++j) if (v[i]==sum(a[j]) && cnt==0 && p[j]!=a[j]) { fout << a[j] << ' '; cnt++; p[j]=a[j]; } } fin.close(); fout.close(); return 0; }
Comentarii