Code: Select all
#include<stdio.h>
typedef struct rectangle{
char des[5];
long double tlx,tly,brx,bry;
} rect;
typedef struct point{
long double x,y;
} point;
void init(void);
void inits(void);
void swap(long double *,long double *);
rect r[1000];
point p[1000];
int flag[1000][1000];
void main(void){
int i,j,q;
char ch;
while(1){
scanf("%s",&r[0].des);
if(r[0].des[0]=='*') break;
scanf("%Lf %Lf %Lf %Lf",&r[0].tlx,&r[0].tly,&r[0].brx,&r[0].bry);
if(r[0].tlx>r[0].brx) swap(&r[0].tlx,&r[0].brx);
if (r[0].tly<r[0].bry) swap(&r[0].tly,&r[0].bry);
ch=getchar();
i=1;
do{
scanf("%s",&r[i].des);
if(r[i].des[0]=='*') break;
scanf("%Lf %Lf %Lf %Lf",&r[i].tlx,&r[i].tly,&r[i].brx,&r[i].bry);
if(r[i].tlx>r[i].brx) swap(&r[i].tlx,&r[i].brx);
if (r[i].tly<r[i].bry) swap(&r[i].tly,&r[i].bry);
ch=getchar();
i++;
} while(r[i].des[0]!='*');
i=0;
init();
do{
scanf("%Lf %Lf",&p[i].x, &p[i].y);
if(p[i].x==9999.9 && p[i].y==9999.9) break;
i++;
} while(1);
ch=getchar();
if(!i) break;
i=0;
j=0;
while(r[j].des[0]!='*'){
i=0;
while(p[i].x!=9999.9 && p[i].y!=9999.9){
if(p[i].x>r[j].tlx && p[i].x<r[j].brx && p[i].y>r[j].bry && p[i].y<r[j].tly) flag[i][j]=1;
i++;
}
j++;
}
q=-1;
for(i=0;p[i].x!=9999.9 || p[i].y!=9999.9; i++){
q=-1;
for(j=0;r[j].des[0]!='*';j++){
if (flag[i][j]) {
printf("Point %d is contained in figure %d\n",i+1,j+1);
q=1;
}
}
if(q!=1) {
printf("Point %d is not contained in any figure\n",i+1);
}
}
inits();
}
}
void init(void){
int i,j;
for(i=0;i<1000;i++){
p[i].x=p[i].y=0;
for(j=0;j<1000;j++){
flag[i][j]=0;
}
}
}
void inits(void){
int i;
for(i=0;i<1000;i++){
r[i].des[0]='0';
r[i].brx=r[i].bry=r[i].tlx=r[i].tly=0;
}
}
void swap(long double *a, long double*b){
long double temp;
temp=*a;
*a=*b;
*b=temp;
}