[我不喜欢猴子]笨小猴

【题目描述】

     笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 
     这种方法的具体描述如下:假设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: }

你可能感兴趣的:([我不喜欢猴子]笨小猴)