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<<'
    ';
            }
        }
     
    }
  • 相关阅读:
    MySQL和B树的那些事
    记一次临时抱佛脚的性能压测经历
    zookeeper api
    zookeeper笔记
    Mysql优化系列(1)--Innodb重要参数优化
    搞懂MySQL InnoDB B+树索引
    我以为我对Mysql索引很了解,直到我遇到了阿里的面试官
    HDFS原理概念扫盲
    设计原则
    设计模式 6大则
  • 原文地址:https://www.cnblogs.com/liulex/p/11248151.html
Copyright © 2011-2022 走看看