競技プログラミング日記

主に AtCoder の記事です

AtCoder Beginner Contest 266C

ABC266C

\(AB, BC\) の表すベクトルを,それぞれ\((a,b), (c,d)\) とする. 角 \(ABC < \pi\) であることは, \(ad - bc > 0\) であることと同値.

使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"

ll check(pll x, pll y){
  auto [a,b] = x;
  auto [c,d] = y;
  return a*d - b*c;

}

int main() {
  vector<pll> a(4);
  rep(i,4){
    cin >> a[i].first >> a[i].second;
  }

  bool f = true;
  rep(i,4){
    pll y = {a[(i+1)%4].first - a[i].first, a[(i+1)%4].second - a[i].second};
    pll x = {a[i].first - a[(4+i-1)%4].first, a[i].second - a[(4+i-1)%4].second};

    if(check(x,y) <= 0){
      f = false;
      break;
    }

  }
  yesno(f);
 
  return 0;
}