poj 2318

来源:互联网 发布:高顿网校cpa价格知乎 编辑:程序博客网 时间:2024/06/05 05:02
#include<stdio.h>#include<string.h>#define N 5010struct node{int upper,down;}cardboard[N];int toy[N];int n,m,x1,y1,x2,y2,x,y;bool cross(int k){ int a,b,c,d;a=x-cardboard[k].down;b=y-y2;c=cardboard[k].upper-cardboard[k].down;d=y1-y2;if(b*c-a*d>0)return 1;return 0;}void binbring(){int left=0,right=n,mid=(left+right)/2;while(left<right){if(cross(mid))//左边cardboard[mid].down,y2,cardboard[mid].upper,y1,x,y){right=mid;} else            //不在mid的左边 ,在右边 {left=mid+1;} mid=(left+right)/2;}toy[right]++;}int main(){    int i;    while(scanf("%d%d%d%d%d%d",&n,&m,&x1,&y1,&x2,&y2)!=EOF)    {if(n==0)                  break; for(i=0;i<n;i++)            scanf("%d%d",&cardboard[i].upper,&cardboard[i].down);                                            cardboard[n].upper=cardboard[n].down=x2;memset(toy,0,sizeof(toy));for(i=0;i<m;i++){            scanf("%d%d",&x,&y);              binbring();}for(i=0;i<=n;i++)printf("%d: %d\n",i,toy[i]);printf("\n"); }    return 0;} 

原创粉丝点击