題目連結:
Google Docs
【分析】
本題作為NOIP2011提高組Day1的第一題,水的不能再水了。剛一看上去,感覺很難,再一看,水爆了!直接從N號毯到1號毯 依次判斷每個毯的坐標,只要找到了就輸出並break,沒找到就輸出-1~
【我的代碼】
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
class CARPET
{
public:
int x1,y1;
int x2,y2;
}C[10001];
int N;
int X,Y;
void init()
{
scanf("%d\n",&N);
int x,y;
for (int i=1;i<=N;i++)
{
scanf("%d %d %d %d\n",&C[i].x1,&C[i].y1,&x,&y);
C[i].x2=C[i].x1+x;
C[i].y2=C[i].y1+y;
}
scanf("%d %d\n",&X,&Y);
return;
}
void work()
{
for (int i=N;i>=1;i--)
{
if(C[i].x1<=X && C[i].x2>=X && C[i].y1<=Y && C[i].y2>=Y)
{
printf("%d\n",i);
return;
}
}
printf("-1\n");
}
int main()
{
freopen("carpet.in","r",stdin);
freopen("carpet.out","w",stdout);
init();
work();
return 0;
}
沒有留言:
張貼留言