【C++】ノックアウト種(PTA)
10083 ワード
タイトルは微博に「大ばか時計V」を自称するやつがいて、毎日鐘を鳴らして私たちに体を大切にして早く寝るように催促している.鐘を鳴らす面白さを増すために、古詩をいくつか書き直す.「ong」の韻を押した古詩詞をネットで探し、語尾の3文字を「鐘を鳴らす」ことに変えた.例えば唐代の詩人李賀は「章を探して老彫虫を摘み、暁月はカーテンに玉弓を掛ける」という名句があり、その中の「虫」(chong)と「弓」(gong)はみな「ong」の韻を押した.そこでこの詩は「章を探して古い彫虫を摘み、暁月はカーテンになって愚かな鐘をたたく」と改ざんされた.
今あなたにたくさんの古詩の語句をあげて、あなたにプログラムを書いて自動的に“ong”の韻の文を押して“愚かな時計をたたく”に変えることを要求します.
入力フォーマット:入力は、最初の行に20を超えない正の整数Nを与える.それからN行、各行は中国語のピンインで1つの古詩詞を与えて、上下の2つの半分の文に分けて、カンマで、区切り、句点を使います.末尾.隣接する2文字のピンインの間にはスペースで区切られています.題目は各字のピンインが6文字を超えないことを保証して、1行の文字の総長は100を超えないで、しかも下半の詩は少なくとも3字あります.
出力フォーマット:各行の詩句に対して、その“ong”韻を押すかどうかを判断します.すなわち、上下の2つの末尾の字はすべて「ong」の末尾である.この韻を押している場合は、問題面の方法でめちゃくちゃにして出力し、出力フォーマットは入力と同じです.そうでなければSkippedを出力し、この文をスキップします.
サンプルを入力:
出力サンプル:
今あなたにたくさんの古詩の語句をあげて、あなたにプログラムを書いて自動的に“ong”の韻の文を押して“愚かな時計をたたく”に変えることを要求します.
入力フォーマット:入力は、最初の行に20を超えない正の整数Nを与える.それからN行、各行は中国語のピンインで1つの古詩詞を与えて、上下の2つの半分の文に分けて、カンマで、区切り、句点を使います.末尾.隣接する2文字のピンインの間にはスペースで区切られています.題目は各字のピンインが6文字を超えないことを保証して、1行の文字の総長は100を超えないで、しかも下半の詩は少なくとも3字あります.
出力フォーマット:各行の詩句に対して、その“ong”韻を押すかどうかを判断します.すなわち、上下の2つの末尾の字はすべて「ong」の末尾である.この韻を押している場合は、問題面の方法でめちゃくちゃにして出力し、出力フォーマットは入力と同じです.そうでなければSkippedを出力し、この文をスキップします.
サンプルを入力:
5
xun zhang zhai ju lao diao chong, xiao yue dang lian gua yu gong.
tian sheng wo cai bi you yong, qian jin san jin huan fu lai.
xue zhui rou zhi leng wei rong, an xiao chen jing shu wei long.
zuo ye xing chen zuo ye feng, hua lou xi pan gui tang dong.
ren xian gui hua luo, ye jing chun shan kong.
出力サンプル:
xun zhang zhai ju lao diao chong, xiao yue dang lian qiao ben zhong.
Skipped
xue zhui rou zhi leng wei rong, an xiao chen jing qiao ben zhong.
Skipped
Skipped
#include
using namespace std;
int main(){
int n;
cin>>n;
getchar();
while(n--){
string str;
getline(cin,str);
int len=str.size(),a,b,c,sum=0;
for(int i=0;i<len;i++){
if(str[i]==',')
a=i;
if(str[i]=='.')
b=i;
}
for(int i=len-1;i>=0;i--){
if(str[i]==' ')
sum++;
if(sum==3){
c=i;
break;
}
}
int flag1=0,flag2=0;
if(str[a-1]=='g'&&str[a-2]=='n'&&str[a-3]=='o')
flag1=1;
if(str[b-1]=='g'&&str[b-2]=='n'&&str[b-3]=='o')
flag2=1;
if(flag1&&flag2){
for(int i=0;i<=c;i++){
cout<<str[i];
}
cout<<"qiao ben zhong."<<endl;
}
else
cout<<"Skipped"<<endl;
}
}