思路:直接暴力枚举区间[l,r]的整数值,然后max和min就可以了。
AC代码:
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<math.h>
#include<algorithm>
#include<queue>
#include<set>
#include<bitset>
#include<map>
#include<vector>
#include<stdlib.h>
using namespace std;
#define ll long long
#define eps 1e-10
#define MOD 1000000007
#define N 56
#define inf 1e12
int main()
{
int t;
scanf("%d",&t);
while(t--){
int a,b,c,l,r;
scanf("%d%d%d%d%d",&a,&b,&c,&l,&r);
int Max = -inf;
int Min = inf;
for(int i=l;i<=r;i++){
int cnt = a*i*i + b*i + c;
Max = max(Max,cnt);
Min = min(Min,cnt);
}
printf("%d %d\n",Max,Min); }
return ;
}