[我不喜欢猴子]笨小猴

【题目描述】

     笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 
     这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

【输入格式】

输入文件只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。

【输出格式】

输出文件共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。

【输入样例】

输入样例1 输入样例2
error olympic

【输出样例】

输出样例1 输出样例2

Lucky Word
2

No Answer
0

【分析】

傻模拟。

  1: #include <stdio.h>
  2: #include <string.h>
  3: #include <math.h>
  4: int max,min,len;
  5: bool have[30];
  6: int time[30];
  7: char s[200];
  8: bool check(int x) {
  9:   if (x < 2)
 10:     return 0;
 11:   for (int i = 2;i <= sqrt(x);++i)
 12:     if (i % x == 0)
 13:       return 0;
 14:   return 1;
 15: }
 16: int main() {
 17:   scanf("%s",s);
 18:   len = strlen(s);
 19:   for (int i = 0;i < len;++i) {
 20:     int t = s[i] - 'a';
 21:     have[t] = 1;
 22:     ++time[t];
 23:   }
 24:   min = 10000000;
 25:   for (int i = 'a';i <= 'z';++i) {
 26:     int t = i - 'a';
 27:     if (have[t]) {
 28:       if (time[t] > max)
 29:         max = time[t];
 30:       if (time[t] < min)
 31:         min = time[t];
 32:     }
 33:   }
 34:   if (check(max - min)) {
 35:     printf("Lucky Word\n%d\n",max - min);
 36:   } else {
 37:     printf("No Answer\n0\n");
 38:   }
 39:   return 0;
 40: }
posted @ 2010-10-12 19:50  Sephiroth.L.  阅读(335)  评论(0编辑  收藏  举报