zoukankan      html  css  js  c++  java
  • 575 div 3 C. Robot Breakout

    C. Robot Breakout

    题目大意:

    一堆机器人,已知他们的初始位置(x,y),本来都可以向四个方向移动,但是一些原因,一个机器人的不能向某些方向移动,该方向能移动用1表示,否则用0

    求他们能否到达同一点,如果能,输出这个点坐标

    思路:维护四个最值,a,b,c,d

    a表示这群机器人能到达的左移x坐标的下界,b表示能上移y的上界,c表示右移x的上界,d表示下移y的下界

    每次遇到机器人某方向不能移动,更新相应值。

    最后判断上界下界的交是否非空

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define pair<int,int> P
    #define endl '
    '
    #define MAXN 100006
    int n,m;
    #define read(A) for(int i=0;i<n;i++)scanf("%I64d",&A[i]);
    ll x,y;
    ll a=-MAXN+6, b=MAXN-6,c=MAXN-6, d=-MAXN+6;
    int main()
    {
        int t;
        scanf("%d",&t);
        int _a;
        while(t--){
            a=-MAXN+6, b=MAXN-6,c=MAXN-6, d=-MAXN+6;
            scanf("%d",&n);
            for(int i=0;i<n;i++){
                scanf("%I64d%I64d",&x,&y);
                for(int j=0;j<4;j++){
                    scanf("%d",&_a);
                    if(j==0&&_a==0)a=max(x,a);
                    if(j==1&&_a==0)b=min(b,y);
                    if(j==2&&_a==0)c=min(c,x);
                    if(j==3&&_a==0)d=max(d,y);
                }
            }
            if(a>c||b<d){
               // cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
                puts("0");
            }
            else{
                cout<<1<<' '<<a<<' '<<b<<'
    ';
            }
        }
     
    }
  • 相关阅读:
    day7 反射
    day7 面向对象进阶
    day7 面向对象class()学习
    day6 subprocess模块、logging模块
    day6 hashlib模块
    day6 ConfigParser模块 yaml模块
    day6 xml文件格式的处理
    day6 shelve模块
    day6 SYS模块
    Servlet的学习之Response响应对象(1)
  • 原文地址:https://www.cnblogs.com/liulex/p/11248151.html
Copyright © 2011-2022 走看看