1 条题解

  • 0
    @ 2025-12-11 15:24:34

    这题先保存所有这些地毯的信息,然后从后往前依次看是否覆盖到了点(x,y),如果覆盖到就记录然后break。

    最后输出答案即可。

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int n,a[10005],b[10005],g[10005],k[10005];
    
    int main()
    {
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i]>>b[i]>>g[i]>>k[i];
    	int x,y;cin>>x>>y;
    	int ans=-1;
    	for(int i=n;i>=1;i--){
    		int x1=a[i],y1=b[i],x2=a[i]+g[i]-1,y2=b[i]+k[i]-1;
    		if((x>=x1)&&(x<=x2)&&(y>=y1)&&(y<=y2)){
    			ans=i;
    			break;
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    3
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    15
    已通过
    11
    上传者