代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 100000;
int main(){
int test,a1,a2,a3,a4;
cin >> test;
while(test--){
int n,i,j,k,x,y;
cin >> n;
int left = -maxn,right = maxn,up = maxn,down = -maxn; //上下左右的边界的最大值
for(i = 0;i < n;i++){
cin >> x >> y >> a1 >> a2 >> a3 >> a4; //输入顺序是 左 上 右 下 L 不能走则更新left为输入的 min(x,L/R)
if(a1 == 0){ // 同理 U D , 更新为输入的 min(y,U/D)
left = max(left,x);
}
if(a2 == 0){
up = min(up,y); ///就是初始的边界都是maxn,然后每输入一个机器人的数据就缩小边界,,,就像是n张图重叠在一起,重叠的部分就是答案
}
if(a3 == 0){
right = min(right,x);
}
if(a4 == 0){
down = max(down,y);
}
}
if(left <= right && up >= down){
cout << 1 << " " << left << " " << down << endl;
}else{
cout << 0 << endl;
}
}
}