Cod sursa(job #2376264)

Utilizator WayronUrsu Ianis-Vlad Wayron Data 8 martie 2019 14:34:01
Problema Poligon Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#define Point pair<int, int>
#define x first
#define y second
using namespace std;

ifstream fin("poligon.in");
ofstream fout("poligon.out");

int n, m;

bool semn_arie(Point O, Point A, Point B){
    return (A.x - O.x)*(B.y - O.y) - (A.y - O.y)*(B.x - O.x) > 0;

}

Point poligon[802];

int main()
{
    fin>>n>>m;

    for(int i=1; i<=n; i++){
        fin>>poligon[i].x>>poligon[i].y;
    }

    poligon[n+1] = poligon[1];

    Point O;
    int nr = 0;


    for(int i=1; i<=m; i++){
        fin>>O.x>>O.y;

        bool sgn = semn_arie(O, poligon[1], poligon[2]);

        for(int i=2; i<=n; i++){
            if(semn_arie(O, poligon[i], poligon[i+1])!=sgn) {
                nr--;
                break;
            }
        }

        nr++;
    }

    fout<<nr;
}