3513 - 七龙珠
近两年我们ACM协会参加了很多比赛,从省赛到邀请赛,从网络赛到区域赛,我们的ACM事业蒸蒸日上,现在已经能冲出山东走向亚洲啦~希望大家能够继续努力,争取在世界总决赛的舞台上为我们争光~
<span><span> </span></span><span style="font-family:宋体;">我校</span><span>ACM</span><span style="font-family:宋体;">蒸蒸日上的原因有很多,据沈龙(神龙?)同学的传言,</span><span>2013</span><span style="font-family:宋体;">年冬,大家正走在训练完成回宿舍的路上,映雪湖畔一位白发苍苍的老爷爷出现在了他面前,身心俱疲的我们带着最后一丝希望问道:“请问我校</span><span>ACM</span><span style="font-family:宋体;">明年成绩如何?”“只要集齐七龙珠,就能让建大明年进入亚洲区域赛。”“哦?七龙珠?”“嗯,就是上面分别有一二三四五六七颗星的龙珠啊。”</span><span></span>
随后的几天,我们就进入了寻找龙珠的过程中。现在呢,我们已经找到了一些龙珠,那么问题来了,挖掘机学校……哦不不不,请问我们的龙珠是不是找全了呢?
Input
<span style="font-family:宋体;">第一行有一个整数</span><span>n</span><span style="font-family:宋体;">,代表输入实例有</span><span>n(</span><span style="font-family:宋体;">题目保证</span><span>n<=100)</span><span style="font-family:宋体;">组。</span><span></span>
<span style="font-family:宋体;">接下来的</span><span>n</span><span style="font-family:宋体;">行,每行为一个字符串</span><span>k</span><span style="font-family:宋体;">(题目保证</span><span>k</span><span style="font-family:宋体;">的长度</span><span><=3000</span><span style="font-family:宋体;">),</span><span></span>
<span style="font-family:宋体;">字符串中每出现一个连续的“</span><span>one</span><span style="font-family:宋体;">”,代表一星龙珠</span><span></span>
<span style="font-family:宋体;">同理,“</span><span>two</span><span style="font-family:宋体;">”代表二星龙珠</span><span></span>
<span style="font-family:宋体;">“</span><span>three</span><span style="font-family:宋体;">”代表三星龙珠</span><span></span>
<span style="font-family:宋体;">“</span><span>four</span><span style="font-family:宋体;">”代表四星龙珠</span><span></span>
<span style="font-family:宋体;">“</span><span>five</span><span style="font-family:宋体;">”代表五星龙珠</span><span></span>
<span style="font-family:宋体;">“</span><span>six</span><span style="font-family:宋体;">”代表六星龙珠</span><span></span>
<span style="font-family:宋体;">“</span><span>seven</span><span style="font-family:宋体;">”代表七星龙珠</span><span></span>
<span style="font-family:宋体;">同样的龙珠可能找到不止一颗。</span><span></span>
<span style="font-family:宋体;">输入保证字符串中的字符全为小写字母。</span><span></span>
<span style="font-family:宋体;">字母可以出现连续。</span><span></span>
如onetwo可以视为找到1,2两颗龙珠,twone和twoone都可以视为找到1,2两颗龙珠(因为他们都包含连续的one/two)。中间可能夹杂着无关字母,比如oneptwo,因为包含one/two,所以也可以被视为1,2两个龙珠。
Output
对于每组输入实例,请输出七种龙珠是否已经找齐。如果是,请输出“Yes”,否则请输出“No”。
Examples
Input
3 twonethreefourfivesixseven oneatwobthreecfourdfiveesixfsevensevenseveneightnine threedaysthreenights
Output
Yes Yes No
Solution C
#include<stdio.h> #include<string.h> int main() {int i,n; char k[3000]; static char a[4]="one",b[4]="two",c[6]="three",d[5]="four",e[5]="five",f[4]="six",g[6]="seven"; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s",k); if(strstr(k,a)!=0&&strstr(k,b)!=0&&strstr(k,c)!=0&&strstr(k,d)!=0&&strstr(k,e)!=0&&strstr(k,f)!=0&&strstr(k,g)!=0) printf("Yes\n"); else printf("No\n"); } return 0; }
Solution C++
#include <stdio.h> #include <string.h> #include <fstream> #include <iostream> using namespace std; int main(void) { int n; /*ifstream cin; ofstream cout; cin.open("b.in"); cout.open("b.out");*/ cin>>n; while(n--) { string s; int x1=0,x2=0,x3=0,x4=0,x5=0,x6=0,x7=0,sum=0,i; cin>>s; for(i=0;i<s.length();i++) if(i+2<s.length()&&s[i]=='o'&&s[i+1]=='n'&&s[i+2]=='e'&&x1==0) {x1=1;sum++;} else if(i+2<s.length()&&s[i]=='t'&&s[i+1]=='w'&&s[i+2]=='o'&&x2==0) {x2=1;sum++;} else if(i+4<s.length()&&s[i]=='t'&&s[i+1]=='h'&&s[i+2]=='r'&&s[i+3]=='e'&&s[i+4]=='e'&&x3==0) {x3=1;sum++;} else if(i+3<s.length()&&s[i]=='f'&&s[i+1]=='o'&&s[i+2]=='u'&&s[i+3]=='r'&&x4==0) {x4=1;sum++;} else if(i+3<s.length()&&s[i]=='f'&&s[i+1]=='i'&&s[i+2]=='v'&&s[i+3]=='e'&&x5==0) {x5=1;sum++;} else if(i+2<s.length()&&s[i]=='s'&&s[i+1]=='i'&&s[i+2]=='x'&&x6==0) {x6=1;sum++;} else if(i+4<s.length()&&s[i]=='s'&&s[i+1]=='e'&&s[i+2]=='v'&&s[i+3]=='e'&&s[i+4]=='n'&&x7==0) {x7=1;sum++;} if(sum==7) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }