Monday, March 7, 2016

UVa 499 - What's The Frequency, Kenneth?

#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 REV(i,n) for(int i=n-1;i>=0;i--)
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define pri(a) cout<<a<<endl
#define prii(a,b) cout<<a<<" "<<b<<endl
#define priii(a,b,c) cout<<a<<" "<<b<<" "<<c<<endl
#define hi printf("Hello World\n");
using namespace std;

const int INF = 1<<29;

const int MX  = 1e5+10;

struct data{

    int pos;
    int cnt;
};

bool cmp(data a, data b)

{
    if(a.cnt != b.cnt)
        return a.cnt > b.cnt;
    else
        return a.pos < b.pos;
}


int main()

{
    data a[MX];
    string s;
    while(getline(cin,s))
    {
        REP(i,125)
        {
            a[i].pos = i;
            a[i].cnt = 0;
        }
        REP(i,SZ(s))
        {
            if(isalpha(s[i])) a[s[i]].cnt++;
        }
       
        sort(a,a+125,cmp);
        LL mn = a[0].cnt;
        REP(i,125)
        {
            if(a[i].cnt != mn) break;
            putchar(a[i].pos);
        }
        cout << " " << mn << "\n";
    }

    return 0;

}

No comments:

Post a Comment