CCPC重赛1002
思路
我们只需要当x=x0的时候抛物线在y0上,x=x1的时候抛物线在y0下,如果抛物线会撞上篮板,那么只需要x=x1+(x1-x0)的时候抛物线在y0下就可以了,注意端点会弹开。
代码
#include <bits/stdc++.h>
#include <algorithm>
#include <iomanip>
#define ll long long
using namespace std;
void solve()
{
int a, b, c;
cin>>a>>b>>c;
int x0, x1, y0, y1, y2;
cin>>x0>>x1>>y0>>y1>>y2;
int x = 2*x1-x0;
int n1 = a*x0*x0+b*x0+c;
int n2 = a*x1*x1+b*x1+c;
int n3 = a*x*x+b*x+c;
if(n1 > y0&&n3 < y0&&n2!=y0&&n2 <= y2) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
int main()
{
int t;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
思维很重要!