洛谷 P1125 笨小猴

4 篇文章 0 订阅

洛谷 P1125 笨小猴


题目

题目描述

笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

输入输出格式

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

输出格式:
输出文件word.out共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;

第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。

输入输出样例

输入样例#1:

error

输出样例#1:

Lucky Word
2

输入样例#2:

olympic

输出样例#2:

No Answer
0

题解

hash记数并标记出现过的字母,然后统计出maxn和minn,相减后求是否为质数


代码(Pascal)

var ch:char;
    maxn,minn,x:longint;
    t:array['a'..'z']of longint;
    vis:array['a'..'z']of  boolean;
 procedure init;
  var i:char;
   begin
     minn:=maxlongint;
     maxn:=0;
     for i:='a' to 'z' do
      begin
        t[i]:=0;
        vis[i]:=false;
       end;
     while not eoln do
      begin
        read(ch);
        if ('a'<=ch)and(ch<='z') then
         begin
           inc(t[ch]);vis[ch]:=true;
           if maxn<t[ch] then maxn:=t[ch];
          end;
       end;
      for i:='a' to 'z' do
       if (vis[i])and(minn>t[i]) then minn:=t[i];
    end;
 procedure main;
  var i,j:longint;
   begin
     x:=maxn-minn;
     if x<2 then begin
                   writeln('No Answer');
                   write('0');
                   halt;
                  end;
     for i:=2 to trunc(sqrt(x)) do
      if x mod i=0 then begin
                          writeln('No Answer');
                          write('0');
                          halt;
                         end;
    end;
 procedure print;
  begin
    writeln('Lucky Word');
    write(x);
   end;
 begin
   init;
   main;
   print;
  end.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值