2020牛客NOIP赛前集训营-普及组(第二场)A-面试

面 试 面试


题目描述

牛牛内推了好多人去牛客网参加面试,面试总共分四轮,每轮的面试官都会对面试者的发挥进行评分。评分有 A B C D 四种。如果面试者在四轮中有一次发挥被评为 D,或者两次发挥被评为 C,就不会通过面试。如果面试者没有一次被评为 D,并且有三个或以上的 A,则会获得 special offer。其余情况会获得普通 offer。

现在告诉你一些面试者的发挥,请你算一算,他们的面试结果分别是什么。


输入

第一行输入一个 T,代表面试者的个数。

接下来有 T 行,每行都有一个长度为 4 的字符串,每个位置的字符分别代表面试者每一轮的发挥。


输出

输出 T 行,分别表示 T 个面试者的面试结果。如果面试失败,输出failed,如果面试通过,但不是 special offer,则输出offer,否则输出 sp offer。


样例输入

2
AAAB
ADAA

样例输出

sp offer
failed

题目解析

由1到N循环,每次输入一行,然后又把字符串循环一次。如果有一次D就退出,输出failed;如果是C,就用一个变量累加起来,如果这个累加器是等于2,也退出,输出failed;如果是A,就累加起来。等最后循环完了,先做是否failed的判断再做有没有3个A的判断,然后依题意输出(详见代码)


(我真的不是在水博客)

code

#include <cstdio>
#include <iostream>
#include <string.h>
using namespace std;

char a[5];
int t, ans;

int main ()
{
	scanf ("%d", &t);
	for (int i = 1; i <= t; ++ i)
	{
		ans = 0;
		int c = 0, o = 0;
		scanf ("%s", &a);
		for (int j = 0 ; j < 4; ++ j)
		{
			if (a[j] == 'A') o ++;
			if (a[j] == 'C') c ++;
			if (a[j] == 'D' or c == 2)
			{
				ans = -1;
				break;
			}
		} 
		if (ans == -1)
		{
			printf ("failed\n");
			continue;
		}
		if (o >= 3) printf ("sp offer\n");
		 else printf ("offer\n");
	}
	return 0;
}
posted @ 2020-10-26 08:00  unknown_future  阅读(60)  评论(0编辑  收藏  举报