575 DIV 3 C.ロボットブレイクアウト

C.ロボットブレイクアウト

効果の件名:

それらの初期位置(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 ' ; 
        } 
    } 
 
}

 

おすすめ

転載: www.cnblogs.com/liulex/p/11248151.html