//G - ¸Ä¸ï´º·ç´µÂúµØ //https://vjudge.net/contest/508277#problem/G #include #include #include #include using namespace std; const int N=101; double ans; int n,j; struct dot { int x,y;//int->double } a[N]; double cross(double x1,double y1,double x2,double y2) { // printf("(%d,%d)(%d,%d):%d\n",x1,y1,x2,y2,x1*y2-x2*y1) ; return x1*y2-x2*y1; } int main() { while(1) { scanf("%d",&n); if(n==0) return 0; ans=0; memset(a,0,sizeof(dot)*(n+1)); for(int i=1; i<=n; i++) { scanf("%d%d",&a[i].x,&a[i].y); } for(int i=1; i<=n; i++) { j=i%n+1; ans+=(cross(a[i].x,a[i].y,a[j].x,a[j].y)/2); } printf("%.1lf\n",ans);//Presentation Error } return 0; }