#575(DIV。3)C.ロボットブレイクアウト(アナログ実装)ラウンドCodeforces

C.ロボットブレイクアウトの
TEST3秒あたりの制限時間
test256メガバイトあたりのメモリ制限
入力inputstandard
outputstandard出力
n個のロボットがあなたの研究室から脱出してきました!これらのロボットは実験しているので、あなたは、できるだけ早くそれらを見つける必要があり、そして彼らの行動は、まだテストされていないので、彼らは本当に危険かもしれません!

幸いなことに、あなたのロボットが脱出しているにもかかわらず、あなたはまだそれらをある程度制御を持っています。あなたが住んでいる世界が座標平面の無限としてモデル化することができ、かつi番目のロボットは、現在座標(Xi、Yi)を持つ点に位置しています:まず第一に、あなたは、各ロボットの位置を知っています。さらに、あなたはすべてのロボットに正確に一つのコマンドを送信することができます。コマンドは、2つの整数XおよびYを含むべきで、各ロボットがこのコマンドを受信すると、座標(X、Y)を有する点に向かって移動を開始します。ロボットは2例で、その動きを停止します。

それは(X、Y)に達するのいずれか。
またはそれは、任意の近い(X、Y)を取得することはできません。
通常、すべてのロボットは、他の点に座標平面の任意の点から取得することができなければなりません。各ロボットは、通常、移動するための4つのアクションを実行することができます。のは(XC、YC)として、ロボットの現在の座標を表してみましょう。次いで、移動システムは、4つの隣接点のいずれかに移動することを可能にします。

最初のアクションは、(XC-1、YC)と(XC、YC)から移動させることができます。
第二の作用は、それが(XC、YC + 1)〜(XC、YC)から移動させることができます。
第三の作用は、それが(XC + 1、YC)と(XC、YC)から移動させることができます。
第四のアクションは、それが(XC、YC-1)〜(XC、YC)から移動することを可能にします。
残念ながら、いくつかのロボットの一部の移動システムが誤動作しているようです。各ロボットのためにあなたはそれが実行できるアクションを知って、それが実行できません。

あなたはそのすべてのロボットが同じ地点に集まるコマンドを送りたいです。そのためには、それぞれのロボットがポイント(X、Y)に達することができるように整数XとYのペアを選択する必要があります。それは、このようなポイントを見つけることは可能ですか?

入力
クエリの数-最初の行は1つの整数Q(1≤q≤105)を含みます。

そして、q個のクエリが続きます。クエリ内のロボットの数 - 各クエリは、1行1個の整数N(1≤n≤105)を含有することから始まります。その後、n行は、これらの線のi番目の現在のクエリのi番目のロボットについて説明し、次のとおりです。これは、6つの整数XI、YIは、FI、1 FI、2 FI、3かつf、4(-105が含ま≤xi、yi≤105、0≤fi、j≤1)。最初の2つの数字は、i番目のロボットの初期位置を記述し、次の4つの番号がi番目のロボットはj番目を使用できる場合、i番目のロボット(FI、J = 1を移動させるために使用できるアクション説明しますアクション、およびFiのJ = 0それはj番目のアクションを使用できない場合)。

すべてのクエリ上のロボットの総数が105を超えないことが保証されます。

出力は
あなたが独立して各クエリに答える必要があり、順番にこれらのクエリを入力して表示されます。

クエリに答えるためには、次のいずれかを実行する必要があります。

それは、すべてのnロボットによって到達可能である点を見つけることが不可能である場合、別個の行に1つのずつ番号0を印刷します。
X及びYは、すべてのnロボットによって到達点の座標で1 XY、:すべてのnロボット、プリント同じライン上に3つのスペースで区切られた整数で到達可能である点を見つけることが可能である場合。XとYの両方が絶対値で105を超えてはなりません。すべてのロボットによって到達可能な少なくとも1つの点が存在する場合、そのような点の少なくとも一方が絶対値で105を超えない座標た両方ことが保証されます。
例えば
inputCopy
4
2
-1 -2 0 0 0 0
-1 -2 0 0 0 0
3
1 5 1 1 1 1
2 5 0 1 0 1
3 5 1 0 0 0
2
1337 1337 0 1 1 1
1336 1337 1 1 0 1
1
3 5 1 1 1 1
outputCopy
1 -1 -2
1 2 5
0
1 -100000 -100000

質問の意味:
あなたは、n個のロボットの座標を与えるために、各ロボットは(唯一の4方向)方向に行くことを伝えることができ、あなたはすべてのロボットが、到着のポイントを見つけることができます見つけます。
アイデア:

4つの値のメンテナンス、右端のX、最高のY一番左のx、yの下にほとんど。最大値として始め、グローバルマトリックスを構成します。

ロボットの方向座標および生存に応じた範囲を狭めるために来ることができるだけでなく、最後の行列が構築されているか否かを判断し、それがマトリクス出力のうちのいずれかとすることができ、そうでなければ0を出力

ローカルゲームの複雑な、無用の変数のマルチ維持多く、上下明確に反映するために、時間の無駄で、その結果、X + -1に応じて決定されていないことを書きます。

詳細コードを参照してください。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define INF 0x3f3f3f3f
const int MAXC = 1e5;
 
int main() {
    int q;
    cin >> q;
    while (q--) {
        int n;
        cin >> n;
        int mnx = -MAXC, mxx = MAXC;
        int mny = -MAXC, mxy = MAXC;
        while (n--) {
            int x, y, f1, f2, f3, f4;
            cin >> x >> y >> f1 >> f2 >> f3 >> f4;
            if (!f1) mnx = max(mnx, x);
            if (!f2) mxy = min(mxy, y);
            if (!f3) mxx = min(mxx, x);
            if (!f4) mny = max(mny, y);
        }
        if (mnx <= mxx && mny <= mxy)
            cout << "1 " << mnx << " " << mny << "\n";
        else
            cout << "0\n";
    }
 
    return 0;
}

おすすめ

転載: www.cnblogs.com/qieqiemin/p/11247861.html