効果の件名:
それらの初期位置(x、y)に知られているパイルロボットは、可能な4つの方向に移動されたであろうが、いくつかの理由のために、ロボットは、そうでなければ0で、移動させることができる1で表される特定の方向を移動できません
彼らは我々ができる場合は、この点出力座標で、同じポイントに到達しようとすることができます
思考:ほとんどの四つの値、a、b、c、dを維持
Aは、左、Xの基が達することができるロボットの下限の座標を表し、bはY上に移動することができる上限を表し、cは右xの上限を示し、D yは低いダウン結合表します
ロボットの方向に移動できないそれぞれの出会いは、対応する値を更新します。
クロスボーダー空でないのかどうか下界の最終判決
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 typedefの長い 長いLL。 #define対<整数、整数> Pと の#define ENDL '\ N' の#define MAXN 100006 int型N、M。 #defineのscanf( "%I64d"、&A [i])と(A)のための(; iがn <I ++はINT I = 0)を読み取ります。 LL X、Y。 LL = -MAXN + 6、B = MAXN- 6、C = MAXN- 6、D = -MAXN + 6 。 INT のmain() { int型のT。 scanf関数(" %のD "、&T)。 int型_a。 一方、(t-- ){ A = -MAXN + 6、B = MAXN- 6、C = MAXN- 6、D = -MAXN + 6 。 scanf関数(" %のD "、&N) 以下のために(int型私= 0 ; iがN <; Iは++ ){ scanf関数(" %I64d%I64d "、およびX&Y)。 用(INT J = 0 ; J < 4 ; J ++ ){ scanf関数(" %のD "、&_a)。 もし(jは== 0 && _ == 0)、A = MAX(X、A)。 もし(jは== 1 && _ == 0)、B = 分(B、Y)。 もし(jは== 2 && _ == 0)C = 分(C、X)。 もし(jは== 3 && _ == 0)、D = MAX(D、Y)。 } } もし(> C || B < D){ // COUT << << " "<< B <<" "<< C <<"" << D << ENDL。 プット(" 0 " ); COUT << 1 << ' ' << << ' ' << B << ' の\ n ' ; } } }