- Quiz
- AC
- 解説
typedef complex<ld> C; // 外積 ld cross(C a, C b){ return a.real()*b.imag() - a.imag()*b.real(); } // 多角形の面積 // 凸に限らない // https://imagingsolution.net/math/calc_n_point_area/ ld polygon_area(vector<C> V){ ll N = V.size(); // 原点,0,1 // 原点,1,2 // ... // 原点,N-1,N(0) V.push_back(V[0]); ld sum=0; C g = {0,0}; // 原点 rep(i,N){ C a = V[i]-g; C b = V[i+1]-g; sum += cross(a,b); } sum = abs(sum); return sum/2; } int main(){ cin.tie(0); ios::sync_with_stdio(false); // input ll N; cin>>N; vector<C> V; rep(i,N){ ld x,y;cin>>x>>y; V.push_back({x,y}); } ld area = polygon_area(V); printf("%.1Lf\n",area); return 0; }