信息学奥赛一本通(1407:笨小猴)
1407:笨小猴
時間限制: 1000 ms ??? ??? 內存限制: 65536 KB
提交數: 20643 ??? 通過數: 7631
【題目描述】
笨小猴的詞匯量很小,所以每次做英語選擇題的時候都很頭疼。但是他找到了一種方法,經試驗證明,用這種方法去選擇選項的時候選對的幾率非常大!
這種方法的具體描述如下:假設maxn是單詞中出現次數最多的字母的出現次數,minn是單詞中出現次數最少的字母的出現次數,如果maxn?minn是一個質數,那么笨小猴就認為這是個Lucky?Word,這樣的單詞很可能就是正確的答案。
【輸入】
只有一行,是一個單詞,其中只可能出現小寫字母,并且長度小于100。
【輸出】
共兩行,第一行是一個字符串,假設輸入的的單詞是Lucky?Word,那么輸出“Lucky?Word”,否則輸出“No?Answer”;
第二行是一個整數,如果輸入單詞是Lucky?Word,輸出maxn?minn的值,否則輸出0。
【輸入樣例】
error【輸出樣例】
Lucky Word 2【提示】
樣例輸入:
樣例 #2:
olympic樣例輸出:
樣例 #2:
No Answer 0【參考代碼】
C++代碼:
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
const int N=210;
string a,b,s[N];
bool is_prime(int n)
{
?? ?int k;
?? ?k=sqrt(n);
?? ?if(n<2)
?? ??? ?return false;
?? ?for(int i=2;i<=k;i++)
?? ?{
?? ??? ?if(n%i==0)
?? ??? ??? ?return false;
?? ?}
?? ?return true;
}
int main()
{
? ? int counts[26]={0};
? ? int len,max=0,min;
? ? string word;
? ??
? ? cin >> word;
?? ?min=word.size();
?? ?
?? ?for(int i=0;i<word.size();i++)
?? ??? ?counts[word[i]-'a']++;
?? ?
?? ?for(int i=0;i<26;i++)
?? ?{
?? ??? ?if(counts[i]>max)
?? ??? ??? ?max=counts[i];
?? ??? ?if(counts[i]<min && counts[i]>0)
?? ??? ??? ?min=counts[i];
?? ?}
?? ?
?? ?if(is_prime(max-min))
?? ?{
?? ??? ?cout << "Lucky Word" << endl;
?? ??? ?cout << max-min << endl;?
?? ?}
?? ?else
?? ?{
?? ??? ?cout << "No Answer" << endl;
?? ??? ?cout << "0" << endl;
?? ?}
? ? return 0;
}
http://ybt.ssoier.cn:8088/problem_show.php?pid=1407
總結
以上是生活随笔為你收集整理的信息学奥赛一本通(1407:笨小猴)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息学奥赛一本通 1194:移动路线 |
- 下一篇: 信息学奥赛一本通(2038:【例5.5】