题目描述 牛牛内推了好多人去牛客网参加面试,面试总共分四轮,每轮的面试官都会对面试者的发挥进行评分。评分有 A B C D A B C D ABCD四种。如果面试者在四轮中有一次发挥被评为 D D D,或者两次发挥被评为 C C C,就不会通过面试。如果面试者没有一次被评为 D D D,并且有三个或以上的 A A A,则会获得 s p e c i a l o f f e r special offer specialoffer。其余情况会获得普通 o f f e r offer offer。
现在告诉你一些面试者的发挥,请你算一算,他们的面试结果分别是什么。
输入描述: 第一行输入一个 T,代表面试者的个数。
接下来有 T 行,每行都有一个长度为 4 的字符串,每个位置的字符分别代表面试者每一轮的发挥。
输出描述: 输出 T 行,分别表示 T 个面试者的面试结果。如果面试失败,输出 f a i l e d failed failed,如果面试通过,但不是 s p e c i a l special special o f f e r offer offer,则输出 o f f e r offer offer,否则输出 s p sp sp o f f e r offer offer。
输入 2 AAAB ADAA
输出 sp offer failed
备注: T < = 1000 T <= 1000 T<=1000
解题思路 简单的模拟,把题目意思翻译一下就是A大于等于3的时候输出 s p sp sp o f f e r offer offer,有 2 2 2个 C C C或者出现 D D D则 f a i l e d failed failed,否则输出 o f f e r offer offer
代码
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> using namespace std; int t,x,y,flag; string c; int main(){ scanf("%d",&t); for(int i=1;i<=t;i++) { x=0,y=0,flag=0; cin>>c; for(int j=0;j<=3;j++) { if(c[j]=='A') x++; if(c[j]=='D') { flag=1; break; } if(c[j]=='C') { y++; if(y==2) { flag=1; break; } } } if(flag==1) printf("failed\n"); else if(x>=3) printf("sp offer\n"); else printf("offer\n"); } }