这题比较简单,直接模拟即可;
请看注释。
A C C o d e AC~Code AC Code
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int a[50],minn=21474836,maxx;
int pdzs,w=1;
string s;
int main()
{
freopen("word.in","r",stdin);
freopen("word.out","w",stdout);
cin>>s;
for(int i=0; i<=s.size()-1; i++)
a[s[i]-96]+=1; //统计&储存
for(int i=1; i<=26; i++)
{
if(a[i]==0)
continue;
if(a[i]>maxx) //找最大最小
maxx=a[i];
if(a[i]<minn)
minn=a[i];
}
pdzs=maxx-minn;
if(pdzs==0||pdzs==1) //特判
{
cout<<"No Answer";
cout<<endl<<0;
return 0;
}
for(int i=2; i*i<=pdzs; i++) //筛质数
{
if(pdzs%i==0) //不是质数
{
cout<<"No Answer";
cout<<endl<<0;
return 0;
}
}
cout<<"Lucky Word"; //是质数
cout<<endl<<pdzs;
return 0;
}