NYOJ---題目62笨小熊
阿新 • • 發佈:2019-01-05
- 描述
-
笨小熊的詞彙量很小,所以每次做英語選擇題的時候都很頭疼。但是他找到了一種方法,經試驗證明,用這種方法去選擇選項的時候選對的機率非常大!
這種方法的具體描述如下:假設maxn是單詞中出現次數最多的字母的出現次數,minn是單詞中出現次數最少的字母的出現次數,如果maxn-minn是一個質數,那麼笨小熊就認為這是個Lucky Word,這樣的單詞很可能就是正確的答案。- 輸入
- 第一行資料N(0<N<100)表示測試資料組數。
每組測試資料輸入只有一行,是一個單詞,其中只可能出現小寫字母,並且長度小於100。 - 輸出
- 每組測試資料輸出共兩行,第一行是一個字串,假設輸入的的單詞是Lucky Word,那麼輸出“Lucky Word”,否則輸出“No Answer”;
第二行是一個整數,如果輸入單詞是Lucky Word,輸出maxn-minn的值,否則輸出0 - 樣例輸入
-
2 error olympic
- 樣例輸出
-
Lucky Word 2 No Answer 0
- 來源
- 上傳者
#include<iostream> #include<string.h> #include<stdio.h> #include<algorithm> #define N 100 using namespace std; bool prime[N]; void prim(bool prime[]) { prime[0]=false; prime[1]=false; for(int i=2;i<100;i++) { if(!prime[i]) continue; for(int j=i*i;j<100;j+=i) { prime[j]=false; } } } int main() { int n,m; int num[28]; int b[28]; char a[120]; cin>>n; while(n--) { cin>>a; memset(num,0,sizeof(num)); memset(prime,true,sizeof(prime)); int len=strlen(a); int t=0; prim(prime); for(int i=0;i<len;i++) { t=a[i]-'a'; num[t]++; } int count=0; for(int i=0;i<28;i++) { if(num[i]) { b[count++]=num[i]; } } sort(b,b+count); m=b[count-1]-b[0]; if(prime[m]) { printf("Lucky Word\n"); printf("%d\n",m); } else { printf("No Answer\n"); printf("0\n"); } } }