英語課

題目描述
英語老師賴老師最近在班上組織了一個單詞遊戲,活動是這樣組織的:

(1)把全班分爲n個小組,每個小組寫一個學過的單詞(均爲小寫)和一個整數k;

(2)每個小組根據該單詞中每個字母的字典順序上推或下推k個位置,經過變換後得到一個新單詞。推移規則是:如果k爲正數則下推,否則上推,當推移超越邊界時回到另一端繼續推移。例如,單詞爲at,k=8則新單詞爲ib,字母t下移到邊界z還不夠,則再從第一個字母a開始繼續推移。

(3)每個小組把得到的新單詞和整數k展示到黑板上。

(4)賴老師緊接着給出了一個字母,規定哪個小組最快完成以下任務則獲勝:統計出該字母在所有小組開始寫出的單詞中出現的次數。

輸入輸出格式
輸入格式:
輸入文件共n+2行:

第1行爲賴老師給出的一個字母;

第2行爲數字n(2≤n≤30),表示全班分爲n個小組;

接着是n行,每行爲每個小組得到的新單詞(2≤單詞長度≤14),然後空一個格,後接一個整數k(-1000≤k≤1000)。

輸出格式:
輸出文件只有一個數,爲給定字母在所有小組開始寫出的單詞中出現的次數。

輸入輸出樣例
輸入樣例#1:
e
2
welcome -2
happy 3
輸出樣例#1:
2

#include<bits/stdc++.h>
using namespace std;
char ch;
int n,ans=0;
string s;int x,len;
int main()
{ 
	cin>>ch>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>s>>x;
		len=s.length();
		x%=26;
		for(int j=0;j<len;j++)
		{ 
			if(x>0) 
			{
				s[j]-=x;
				if(s[j]<97) s[j]+=26;
			}
			if(x<=0)
			{
				s[j]+=fabs(x);
				if(s[j]>122) s[j]-=26;
			} 
			if(s[j]==ch) ans++; 
		} 
	} 
	cout<<ans<<endl;
	return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章