前言

传送门

正文


参考题解

#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
/* 题意: 水题,计算所给n个数的不同的friend id的个数以及这些id 思路:散列即可 */
const int N=1e4+10;
bool id[50];
map<int,bool> mp;
int main(){
	int n,cnt=0,temp; 
	fill(id,id+50,false);
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>temp;
		int sum=0;
		do{
			sum+=temp%10;
			temp/=10;
		}while(temp!=0);
		if(id[sum]==false){
			cnt++;
			mp[sum]=true;
			id[sum]=true;
		}
	} 
	cout<<cnt<<endl;
	for(auto it=mp.begin();it!=mp.end();it++){
		if(it!=mp.begin())cout<<" ";
		cout<<it->first;
	}
	return 0;
}