Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "A Point in a Triangle"
https://onlinejudge.u-aizu.ac.jp/problems/0012
・三角形と点
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume0 - 0012 : A Point in a Triangle
/* Aizu Online Judge in C++ #Volume0 - 0012 : A Point in a Triangle https://onlinejudge.u-aizu.ac.jp/problems/0012 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; int main(void){ double x[4],y[4],ax,ay,bx,by; ll i,f; while(cin>>x[0]>>y[0]){ for(i=1;i<4;i++){ cin>>x[i]>>y[i]; } for(i=f=0;i<3;i++){ ax=x[(i+1)%3]-x[i]; ay=y[(i+1)%3]-y[i]; bx=x[3]-x[i]; by=y[3]-y[i]; if(ax*by>ay*bx){ f++; } } if(f%3){ cout<<"NO"<<endl; }else{ cout<<"YES"<<endl; } } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/