面试
\operatorname{面试}
面试
题目链接:
nowcoder 212911
\operatorname{nowcoder\ 212911}
nowcoder 212911
关于这场比赛
——>点我可以查看其它题目(目录)<——
到牛客看:
——>点我跳转<——
题目
牛牛内推了好多人去牛客网参加面试,面试总共分四轮,每轮的面试官都会对面试者的发挥进行评分。评分有 A B C D 四种。如果面试者在四轮中有一次发挥被评为 D,或者两次发挥被评为 C,就不会通过面试。如果面试者没有一次被评为 D,并且有三个或以上的 A,则会获得 special offer。其余情况会获得普通 offer。
现在告诉你一些面试者的发挥,请你算一算,他们的面试结果分别是什么。
输入
第一行输入一个
T
T
T,代表面试者的个数。
接下来有
T
T
T 行,每行都有一个长度为
4
4
4 的字符串,每个位置的字符分别代表面试者每一轮的发挥。
输出
输出
T
T
T 行,分别表示
T
T
T 个面试者的面试结果。如果面试失败,输出 failed,如果面试通过,但不是 special offer,则输出 offer,否则输出 sp offer。
样例输入
2
AAAB
ADAA
样例输出
sp offer
failed
数据范围
T
<
=
1000
T <= 1000
T<=1000
思路
一道模拟题。
就统计每个人的评分,然后再根据要求给出结果即可。
比赛时
看完题目,发现是模拟,就打了出来。 没了。
代码
#include<cstdio>
using namespace std
;
int T
, A
, B
, C
, D
;
char c
;
int main() {
scanf("%d", &T
);
for (int i
= 1; i
<= T
; i
++) {
A
= B
= C
= D
= 0;
for (int i
= 1; i
<= 4; i
++) {
c
= getchar();
while (c
< 'A' || c
> 'D') c
= getchar();
if (c
== 'A') A
++;
else if (c
== 'B') B
++;
else if (c
== 'C') C
++;
else D
++;
}
if (D
) {
printf("failed\n");
continue;
}
if (C
> 1) {
printf("failed\n");
continue;
}
if (A
> 2) {
printf("sp offer\n");
continue;
}
printf("offer\n");
}
return 0;
}