题目描述
牛牛内推了好多人去牛客网参加面试,面试总共分四轮,每轮的面试官都会对面试者的发挥进行评分。评分有
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");
}
}