40求助

P1003 [NOIP2011 提高组] 铺地毯

给你整个代码借鉴一下```cpp #include<bits/stdc++.h> using namespace std; int a[10010],b[10010],c[10010],d[10010],t,n,s,h; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]>>c[i]>>d[i]; } cin>>t>>s; int v=-1; for(int i=1;i<=n;i++){ if(t>=a[i]&&t<=(a[i]+c[i])&&s<=(b[i]+d[i])&&s>=b[i]){ v=i; } } cout<<v; return 0; } ```
by wei345 @ 2024-02-19 11:45:48


@[zdrcgubjo](/user/948175) 结构体会吧? 会就然后一顿乱敲 写出代码: ```cpp #include <iostream> using namespace std; struct carpet{ int a,b,x,y;//开个结构体 }m[10001]; int main() { int n,tx,ty; cin>>n; for(int i=1;i<=n;++i){ cin>>m[i].a>>m[i].b>>m[i].x>>m[i].y; } cin>>tx>>ty; //上面是定义和输入没啥好说的 for(int i=n;i>=1;--i){//因为要求最上面的那张地毯,所以从后往前找 if(tx<=m[i].a+m[i].x&&tx>=m[i].a&&ty>=m[i].b&&ty<=m[i].b+m[i].y){//判断输入的坐标是否在第i张地毯的覆盖范围内 cout<<i;//找到就输出 return 0;//结束程序 } } cout<<-1;//循环完没找到输出-1 return 0; } ```
by HFZ20111110 @ 2024-02-23 11:20:46


@[wei345](/user/1142251) 好吧谢谢
by zdrcgubjo @ 2024-02-23 18:30:46


@[HFZ20111110](/user/1234400) ![](https://picx.zhimg.com/50/v2-624ee973d13378c5c17d9b27c2cbebd5_720w.webp?source=1def8aca) 但还是谢谢
by zdrcgubjo @ 2024-02-23 18:32:02


|