#include <bits/stdc++.h>
#define LL long long
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(),(x).end()
#define REP(i,n) for(int i=0;i<n;i++)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define REV(i,n) for(int i=n-1;i>=0;i--)
#define pri(a) cout << a << endl;
using namespace std;
struct DT
{
int asci;
int freq;
}data[500];
bool cmp(DT a, DT b)
{
if(a.freq < b.freq) return true;
else if(a.freq == b.freq and a.asci > b.asci) return true;
return false;
}
int val[500];
int main()
{
string s;
int f = 0;
while(getline(cin,s))
{
memset(val, 0 , sizeof val);
REP(i,SZ(s))
{
val[ s[i] ]++;
}
int idx = 0;
REP(i,500)
{
if(val[i])
{
data[idx].asci = i;
data[idx].freq = val[i];
idx++;
}
}
sort(data,data+idx,cmp);
if(f) puts("");
f++;
REP(i,idx)
{
cout << data[i].asci << " " << data[i].freq << "\n";
}
}
return 0;
}
No comments:
Post a Comment