File Annotation
Not logged in
23dfcca431 2011-02-23        kinaba: //-------------------------------------------------------------
23dfcca431 2011-02-23        kinaba: // Area of a polygon
23dfcca431 2011-02-23        kinaba: //   O(N)
23dfcca431 2011-02-23        kinaba: //
23dfcca431 2011-02-23        kinaba: // Verified by
23dfcca431 2011-02-23        kinaba: //   - SRM 337 Div1 LV3
23dfcca431 2011-02-23        kinaba: //   - SRM 486 Div1 LV3
23dfcca431 2011-02-23        kinaba: //-------------------------------------------------------------
23dfcca431 2011-02-23        kinaba: 
07ad2e1283 2013-06-30        kinaba: double outer_prod(const CMP& a, const CMP& b) { return imag(conj(a)*b); }
23dfcca431 2011-02-23        kinaba: 
23dfcca431 2011-02-23        kinaba: double area( const vector<pt>& q )
23dfcca431 2011-02-23        kinaba: {
23dfcca431 2011-02-23        kinaba: 	double a = 0.0;
23dfcca431 2011-02-23        kinaba: 
23dfcca431 2011-02-23        kinaba: 	pt o = q[0];
23dfcca431 2011-02-23        kinaba: 	for(int i=1; i+1<q.size(); ++i)
23dfcca431 2011-02-23        kinaba: 		a += outer_prod(q[i]-o, q[i+1]-o);
23dfcca431 2011-02-23        kinaba: 	return abs(a) / 2;
23dfcca431 2011-02-23        kinaba: }