L1-8 静静的推荐

发布时间 2023-03-28 15:17:37作者: Jinx8823

这是一道比较不错的思维题吧,刚开始我以为要用结构体来对每个人的天梯赛成绩和pta成绩来进行分别排序,然后发现其实并不是这样。看了一下别人的代码发现并不是这样。

思路:

不难发现,题目中所描述的天梯赛成绩>=175,以及pta>=s(第一个例子里是90)的人是无论如何都可以接受的,所以一旦有人满足了这个条件,推荐的学生人数就加一,接下来我们要考虑的就是只有天梯赛成绩>=175的人。我们可以用一个下标为各个成绩的数组来进行判断,判断它是否有超过推荐批次。(在不考虑pta>=s的情况下,也就是pta<s时,每一批次,每一个分值的人都只能推荐一个,因为题目中描述的是严格递增)所以数值中的值就是它的批次,每当有人满足成绩>175时,批次就加一,直到超过题中给定的批次。

#include<cstdio>
using namespace std;
int main()
{
	int n,k,s,t,p;
	int num=0;
	int a[291]={0};
	scanf("%d%d%d",&n,&k,&s);
	while(n--)
	{
		scanf("%d%d",&t,&p);
		if(t>=175)
		{
			if(p>=s) num++;//两个成绩都满足,企业可以无条件接受
			else if(a[t]<k)//如果批次还小于题目中的批次,就可以继续推荐
			{
				a[t]++;
				num++;
			}
		}
	}
	printf("%d",num);
	return 0;
}