//Pick定理 设已整数点为顶点的多边形的面积为S,多边形内部的整数点为N,多边形边界上的整数点数为L //则 N+1/2 L-1=S #include<stdio.h> #include<math.h> typedef struct Point{ int x,y; }POINT; int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } int onedge(int n,POINT * p) { int i,ret=0; for(i=0;i<n;i++) ret+=gcd(fabs(p[i].x-p[(i+1)%n].x),fabs(p[i].y-p[(i+1)%n].y)); return ret; } int inside(int n,POINT *p) { int i,area=0; for(i=0;i<n;i++) area+=p[(i+1)%n].y*(p[i].x-p[(i+2)%n].x); return (fabs(area)-onedge(n,p))/2+1; } int main() { int i,n,sum; POINT p[10]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&p[i].x,&p[i].y); sum=inside(n,p); printf("%d/n",sum); }