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ât1.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; }