fbpx

Problema #2669 – Count5 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente din vector sunt formate din valori cu aceeași sumă a cifrelor.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieșire

Programul afișează pe ecran numărul C, reprezentând valoarea cerută.

Restricții și precizări

  • 1 ≤ n ≤ 100.000
  • cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu

Intrare

6
51 842 15 28 77 132

Ieșire

4

Explicație

Perechile de elemente cu aceeaşi sumă cifrelor sunt:
51 15
51 132
842 77
15 132

#include <bits/stdc++.h>
using namespace std;

int f[101];

int sumcif(int n)
{
    int s=0;
    while(n)
        s+=n%10 , n/=10;
    return s;
}

int main()
{
    int n;
    cin >> n;
    int x;
    for(int i = 1 ; i <= n ; ++i)
        cin >> x , f[sumcif(x)]++;
    int cnt=0;
    for(int i = 1 ; i <= 100 ; ++i)
        if(f[i]>1)
        cnt = cnt + (f[i]*(f[i]-1)/2);
    cout << cnt;
    return 0;
}
Comentarii

S-ar putea sa iti placa