1 条题解

  • 0
    @ 2022-9-4 15:15:38

    //鄙人思路是先输出,逆序找,因为后来的地毯会覆盖之前的,一发现有解就输出

    `

    #include"cstdio"
    #include"iostream"
    using namespace std;
    int a[10010],b[10010],g[10010],k[10010],s[10010];//开数组,不多说,s数组标记地毯序号
    int main()
    {
     //ios::sync_with_stdio(false);//可关闭和stdio同步加速
     int n,i,x,y,ok=1;//ok标记是否有解
     cin>>n;
     for(i=1;i<=n;i++)   
     {cin>>a[i]>>b[i]>>g[i]>>k[i];   
      s[i]=i;//把i存进数组里  
     }   
     cin>>x>>y;
     for(i=n;i>=1;i--)
     {
      if(x>=a[i]&&x<=a[i]+g[i]&&y>=b[i]&&y<=b[i]+k[i])
      {
      ok=0;cout<<s[i];break;//逆序找,发现有解,把ok标记为0,输出并退出循环
      }                
     }
     if(ok) cout<<"-1";//如果找遍了都没解就输出-1
     return 0;   
    }
    
    • 1

    信息

    ID
    1540
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    31
    已通过
    24
    上传者