LuoguP6850 NOI 题解

Content

小 L 参加了 \(\texttt{NOI}\),现在他告诉你九个数 \(a,b,c,d,e,f,g,h,i\),分别表示——笔试作对的题数、D1T1、D1T2、D1T3、D2T1、D2T2、D2T3 分别得到的分数、是否是 A 类选手(\(1\) 表示是,\(0\) 表示不是)和进队线。已知 \(\texttt{NOI}\) 的计分方式是:

  1. 笔试基础分为 \(50\),每做对一题加 \(1\) 分。
  2. 总分为笔试分数加上上机题目每题的分数。
  3. 如果是 A 类选手还有 \(5\) 分的加成。

请问小 L 是否能够进队。

数据范围:\(0\leqslant a\leqslant 50,0\leqslant b,c,d,e,f,g\leqslant 100,0\leqslant h\leqslant 1,205\leqslant i\leqslant 705\)

Solution

直接按照上面的规则计算分数,很明显可以推出来分数是 \(a+b+c+d+e+f+g+50+h\times5\)

这里我来解释一下:

  • 为什么要加 \(a,b,c,d,e,f,g\) 不需要讲吧。
  • 笔试基础分有 \(50\) 分,需要加上去。
  • 因为有 A 类名额的话,\(h=1,h\times5=5\);没有的话,\(h=0,h\times 5=0\)。所以 \(h\times 5\) 就相当于看有没有 A 类名额的加成,没有?那这个 \(h\times 5\) 也是白加。

然后再判断这个分数是否 \(\geqslant i\) 即可。

Code

#include <cstdio>
using namespace std;

int a[17], sum;

int main() {
	for(int i = 1; i <= 9; ++i)	scanf("%d", &a[i]);
	sum = 50 + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] + a[8] * 5;
	if(sum >= a[9])	printf("AKIOI");
	else	printf("AFO");
} 
posted @ 2021-12-21 20:15  Eason_AC  阅读(36)  评论(0)    收藏  举报