無限の光を放つのは人間の心であり、無限の闇を生み出すのも人間の心であり、光と闇が絡み合って戦うこの世界は、懐かしくて無力な世界です。
2つの整数が同じ数字の合計を共有し、その合計が「フレンドID」である場合、「フレンド番号」と呼ばれます。たとえば、123と51は友達番号です。1+ 2 + 3 = 5 + 1 = 6であり、6は友達IDです。いくつかの数を与えられて、それらの間で異なる友達IDの数を数えることになっています。
入力仕様:
各入力ファイルには1つのテストケースが含まれています。いずれの場合も、最初の行は正の整数Nを示します。次の行には、スペースで区切られたN個の正の整数が示されています。すべての数値は10 4未満です。
出力仕様:
いずれの場合も、最初の行に、指定された整数の中のさまざまなフリンジIDの数を出力します。次に2行目に、フレンドIDを昇順で出力します。数値は1つのスペースで区切る必要があり、行末に余分なスペースがあってはなりません。
入力例:
8
123 899 51 998 27 33 36 12
出力例:
4
3 6 9 26
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
//#include<bits/stdc++.h>
#define PP pair<ll,int>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
#define PI 3.1415926
typedef long long ll;
using namespace std;
int const mod=1e9+7;
const int maxn=1010;
int N,s[10010],ct;
set<int> jg;
int sum(int x){
int ans=0;
while(x){
int ls=x%10;
ans+=ls;
x/=10;
}
return ans;
}
int main(){
cin>>N;
for(int i=0;i<N;i++){
cin>>s[i];
jg.insert(sum(s[i]));
}
// for(int i=0;i<N;i++){
// for(int j=i+1;j<N;j++){
// if(sum(s[i])==sum(s[j])){
// ct++;
// jg.insert(sum(s[i]));
// }
// }
// }
set<int>::iterator i;
cout<<jg.size()<<endl;
for(i=jg.begin();i!=jg.end();i++){
if(i!=jg.begin())
cout<<' ';
cout<<*i;
}
return 0;
}