多角形の面積(凸じゃなくても可)は外積で求まる

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;
}