Cod sursa(job #67971)

Utilizator FlorianFlorian Marcu Florian Data 26 iunie 2007 10:48:35
Problema Poligon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<stdio.h>
#include<stdlib.h>
typedef struct
        {
        long x,y;
        }Punct;
long sol=0,n,m;
Punct a[809],b[61000];
void read()
        {
        FILE*f=fopen("poligon.in","r");
        fscanf(f,"%ld %ld",&n,&m);
        int i;
        for(i=1;i<=n;++i) fscanf(f,"%ld %ld",&a[i].x,&a[i].y);
        for(i=1;i<=n;++i) fscanf(f,"%ld %ld", &b[i].x,&b[i].y);
        }
int arie(Punct a, Punct b, Punct c)
        {
        long arie;
        arie=(b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
        return abs(arie);
        }
FILE*g=fopen("poligon.out","w");
int main()
        {
        read();
        int i,j,s,area,S=0;
        for(i=2;i<n;++i)
                S+=arie(a[1],a[i],a[i+1]);
        for(i=1;i<=m;++i)
              {
              area=0;
              for(j=1;j<=n;++j)
                        {
                        s=arie(b[i],a[j],a[j%n+1]);
                        area+=s;
                        }
             if(area==S) sol++;
             }
        fprintf(g,"%ld\n",sol);
        return 0;
        }