HDU5198 Strange Class
问题描述
在Vivid的学校里,有一个奇怪的班级(SC).在SC里,这些学生的名字非常奇怪。他们的名字形式是这样的n(a,b,c两两不相同。).例如,叫”abc”,”ddppqq”的学生是在SC里的,然而叫”aaa”,”ab”,”ddppqqq”的同学并不是在SC里的。
Vivid交了许多的朋友,他想知道他们之中哪些人是在SC里的。
输入描述
多组测试数据(大概10组),每一个数据在一行中给出一个字符串S,代表Vivid一个朋友的名字。 请处理到文件末尾。 [参数约定] 10. |S| 是指S的长度. S 只包含小写字母.
输出描述
对于每一个数据,如果Vivid的朋友是SC里的,那么输出YES,否则输出NO。
输入样例
abc bc
输出样例
YES NO
思路:模拟就行,这场比赛题目都很水
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cstring> 5 #define maxn 1000 6 using namespace std; 7 char ch[maxn],cha[10]; 8 int a[10]; 9 int main() 10 { 11 int n; 12 while(scanf("%s",ch+1)!=EOF) 13 { 14 memset(a,0,sizeof(a)); 15 int len=strlen(ch+1); 16 cha[1]=ch[1]; 17 for(int i=1;i<=len;i++) 18 { 19 if(ch[i]==cha[1])a[1]++;else break; 20 } 21 cha[2]=ch[a[1]+1]; 22 for(int i=a[1]+1;i<=len;i++) 23 { 24 if(ch[i]==cha[2])a[2]++;else break; 25 } 26 cha[3]=ch[a[2]+a[1]+1]; 27 for(int i=a[1]+a[2]+1;i<=len;i++) 28 { 29 if(cha[3]==ch[i])a[3]++;else break; 30 } 31 if(a[1]+a[2]+a[3]!=len){puts("NO");continue;} 32 if(a[1]!=a[2] || a[2]!=a[3] || a[1]!=a[3]){puts("NO");continue;} 33 if(cha[1]==cha[2] || cha[1]==cha[3] || cha[2]==cha[3]){puts("NO");continue;} 34 puts("YES"); 35 } 36 return 0; 37 }