はやし屋

競技プログラミングのメモ きたない

AOJ 0116 : Area of Polygon

大小比較だけなのでsinの値だけでOK
EQ判定のみ誤差った(謎)

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define EPS 1e-6
#define rep(i,n) for(i = 0 ; i < n ; ++i)
#define EQ(a,b) (fabs(a - b)<EPS)
 
int main()
{
  int i ,j ;
 
  for(;;){
    int n ;double dat[2];
    rep(i,2){
      dat[i] = 0.0;
      scanf("%d",&n);
      if(n == 0)return 0;
      double all = 360.0;
      rep(j,n-1){
	double q;
	scanf("%lf",&q);
	all -= q;
	dat[i] += sin(q / 180.0 * M_PI);
      }
      dat[i] += sin(all / 180.0 * M_PI);
    }
    printf("%d\n",EQ(dat[0],dat[1])?0:dat[0]>dat[1]?1:2);
  }
}