码迷,mamicode.com
首页 > 其他好文 > 详细

CF Gym 100500I Hall of Fame

时间:2015-07-27 20:24:25      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

题意:统计一些串中,字母的出现频率,不分大小写,找出现频率最高5个字符(相同频率优先取字典序大的),把他们的对应的值加起来判断以下是否大于62。

没出现的不算。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;

char str[5000];
int cnt[26];

bool cmp(int a,int  b) { return cnt[a]>cnt[b] || ( cnt[a] == cnt[b] && a > b ); }

int main()
{
    int T;
    scanf("%d",&T);getchar();
    for(int k = 1; k <= T; k++){
        memset(cnt,0,sizeof(cnt));
        while(~scanf("%s",str)&&(*str)!=*){
            int len = strlen(str);
            for(int i = 0; i < len; i++){
                char ch = str[i];
                if(a<=ch&&ch<=z){
                    cnt[ch-a]++;
                }else
                if(A<=ch&&ch<=Z){
                    cnt[ch-A]++;
                }
            }
        }
        int r[26];
        for(int i = 0; i < 26; i++) { r[i] = i; }
        sort(r,r+26,cmp);
        int sum = 0;
        for(int i = 0; i < 5; i++) {
            if(cnt[r[i]])
            sum += r[i];
        }
        printf("Case %d: %s\n",k,sum>62?"Effective":"Ineffective");
    }
    return 0;
}

 

CF Gym 100500I Hall of Fame

标签:

原文地址:http://www.cnblogs.com/jerryRey/p/4680888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!