地址:http://codeforces.com/contest/1332
题意:一只猫,给出各个方向走多少次。给出初始坐标以及限制范围。不论走法,问是否会越界。
解析:这个题比较坑,比如样例二,如果只把猫限制到一条竖线或者一条横线上,那么只要存在左右走或上下走,一定会越界,这些一定要进行特判。其他的就进行左右抵消走,上下抵消走就可以了,能保证不出范围即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
int t;
cin>>t;
while(t--)
{
ll a,b,c,d;
cin>>a>>b>>c>>d;
ll x,y,x1,y1,x2,y2;
cin>>x>>y>>x1>>y1>>x2>>y2;
if(a<b)
{
ll m1=b-a;
x=x+m1;
}
else
{
ll m1=a-b;
x=x-m1;
}
if(c>d)
{
ll m1=c-d;
y=y-m1;
}
else
{
ll m1=d-c;
y=y+m1;
}
if((x1==x2)&&(a>0||b>0))
cout<<"No"<<endl;
else if((y1==y2)&&(c>0||d>0))
cout<<"No"<<endl;
else if(x>=x1&&x<=x2&&y>=y1&&y<=y2)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}