400
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