题目来源:http://116.56.140.75:8000/JudgeOnline/problem.php?id=1715
1715: 足球射门
时间限制: 1 Sec 内存限制: 64 MB题目描述
足球是很多人热爱的体育项目,足球最精彩的瞬间莫过于射门了,不过不要老坐在电视机前看足球,应该自己亲身参与体育锻炼,相信你会身体越来越强健,精神越来越爽朗,生活越来越美好。 假设球门的顶横杆和两侧的侧柱分别平行于球门平面坐标系的x轴和y轴,现在给定球门的左上角和右下角在球门平面的坐标。那么这个球门的位置就唯一确定了。如果已知某次射门的球飞到球门所在平面坐标系中的坐标,那么我们就能判定球是射中了还是打在球柱上还是射偏了。 有人会觉得奇怪,球的y坐标怎么会小于球门底边的y坐标。可以这样理解:球本来会落到球门的下面去,但是被球场平面所阻挡,这种情形被认为没有射进球门是合理的。 须特别说明的是,本题中的球门不存在底边的横杆,所以射到这个位置的球被认为是射中了。
输入
第一行包含4个整数,分别表示球门的左上角和右下角x,y坐标。第二行包含一个整数n(1≤n≤100),表示测试用例额个数。其后的n行,每行包含一个坐标,表示射来的球在球门平面上的坐标。
输出
对每个射门的球输出一行,如果射中了,输出goal!,如果射在球门的顶杆或侧柱上输出bar!,其余的球则输出fail!。
样例输入
0 3 4 0
5
1 1
0 0
2 0
4 0
-5 -6
样例输出
goal!
bar!
goal!
bar!
fail!
解析:注意一下逻辑关系就可以了,即判断条件
代码:
#include<iostream>
using namespace std;
int main()
{
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
int t;
cin >> t;
while (t--)
{
int x, y;
cin >> x >> y;
if (x == x1 || y == y1 || x == x2)
cout << "bar!" << endl;
else
{
if ((x > x1&&x < x2) && (y >= y2&&y < y1))
cout << "goal!" << endl;
else
cout << "fail!" << endl;
}
}
}
/**************************************************************
Problem: 1715
User: 201730685257
Language: C++
Result: 正确
Time:0 ms
Memory:1484 kb
****************************************************************/