今天是到福州的第二天。昨天就已经到了。今天是上课的第一天。
走过N级楼梯,终于到了八楼。
看到了教师,嗯?居然没有电脑。然后我们就在那个教室里上了一上午的搜索。
老师讲的很快,所以就迷迷糊糊听了一些。
没有将广搜,只讲了枚举和深搜。
所以考试似乎也只考了这两个。今天的考试,有无数人爆零。我就是其中的一个,哈哈哈哈哈哈哈!
第一题——及格
题目:小A这学期上了一门课,这门课分数的评定标准如下:
课程分数=x*a%+y*b%+z*(100-a-b)%,其中x为平时作业成绩、y为期中考试成绩、z为期末考试成绩,x,y,z,a,b,100-a-b均是不大于100不小于0的整数,最终分数如果有小数部分则直接舍去。
现在小A知道了自己平时作业、期中考试的成绩以及比例系数a和b,他想知道为了达到及格(60分),自己期末至少要得到多少分,如果小A无论如何都无法及格,那么就输出”poor little A!”(不含引号)。
【输入格式】
第一行一个正整数T,表示数据组数。
接下来T行,每行四个非负整数x,y,a,b。
【输出格式】
输出T行,分别表示每组数据中,小A期末要得到多少分,或者”poor little A!”
【样例输入】
3
100 80 20 30
100 100 50 30
100 0 0 50
【样例输出】
32
0
poor little A!
【数据规模】
对于100%的数据:1 ≤ T ≤ 1000,0 ≤ x,y,a,b ≤ 100,0 ≤ a+b ≤ 100。
虽然这道题看着很水,但是似乎除了老师之外就只有一个人AC了。吃惊吧。
这题用枚举。因为是z的范围是从0到100的,所以枚举z,输出第一个符合条件的z,且z符合0<=z<=100,如果没找到输出“poor little A!”
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T,x,y,a,b;
cin>>T;
while(T--)
{
cin>>x>>y>>a>>b;
bool flag=false;
for(int z=0;z<=100;++z)//枚举z
{
if(x*a+y*b+z*(100-a-b)>=6000)//判断条件
{
cout<<z<<endl;//符合条件,输出。
flag=true;
break;//找到退出,这样输出的是最小值
}
}
if(!flag)
cout<<"poor little A!"<<endl;//如果在0到100之间的数不满足,则输出“poor little A!”
}
}