POJ2318 TOY

#include <iostream>
#include <vector>
using namespace std;

class Point{
private:
    int x,y;
};
   
class Line{
public:
    int sx,sy,ex,ey;
    Line(int sx,int sy,int ex,int ey):sx(sx),sy(sy),ex(ex),ey(ey){}
    int operator*(const Line & rhs){
        int v1x = ex - sx;
        int v1y = ey - sy;
        int v2x = rhs.ex - rhs.sx;
        int v2y = rhs.ey - rhs.sy;
        return v1x * v2y - v2x * v1y;
    }
};

int main(){
    int n,m,x1,y1,x2,y2;
    while(cin >> n && n != 0 )    {
        cin >> m >> x1 >> y1 >> x2 >> y2;   
        vector<Line> vl;
        for(int i = 0; i < n ; ++i)    {
            int tmpx1,tmpx2;
            cin >> tmpx1 >> tmpx2;   
            vl.push_back(Line(tmpx2,y2,tmpx1,y1));
        }
        vector<int>    part(n+1);
        for(int i= 0;i < m ; ++i){
            int toyx,toyy;   
            cin >> toyx >> toyy;
            int j = 0;
            bool flag = false;
            do{
                Line toyline(vl[j].sx, vl[j].sy , toyx,toyy)    ;
                int tmp = vl[j] * toyline;
                if(tmp > 0){
                    part[j]++;
                    flag = true;
                    break;
                }
                ++j;
            }
            while(j < n);
            if( flag == false)
                part[n]++;
        }
        for(int i = 0 ; i < n + 1; ++i)
            cout << i << ": " << part[i] << endl;
        cout << endl;
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值