#include<iostream>#include<set>usingnamespace std;
set<int> se;intdigSum(int x){int ans =0;do{
ans += x %10;
x /=10;}while(x >0);return ans;}intmain(){int n, tmp, cnt =0;scanf("%d",&n);for(int i =0; i < n;++i){scanf("%d",&tmp);
se.insert(digSum(tmp));}printf("%d\n", se.size());for(auto it = se.begin(); it != se.end();++it){
cout <<*it;if(++cnt < se.size())printf(" ");}return0;}
T2 code:
#include<bits/stdc++.h>usingnamespace std;
map<int,bool> mp;intSum(string s){int sum =0;for(int i =0; i < s.size();++i){
sum += s[i]-'0';}return sum;}intmain(){int n;scanf("%d",&n);for(int i =0; i < n;++i){
string num;
cin >> num;
mp[Sum(num)]=true;}printf("%d\n", mp.size());for(auto it = mp.begin(); it != mp.end();++it){if(it == mp.begin())printf("%d", it->first);elseprintf(" %d", it->first);}return0;}