fbpx

Problema #131 – SortCif2 – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa