結果
問題 | No.622 点と三角柱の内外判定 |
ユーザー |
![]() |
提出日時 | 2019-04-18 18:00:27 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,050 bytes |
コンパイル時間 | 1,555 ms |
コンパイル使用メモリ | 168,428 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-22 10:36:50 |
合計ジャッジ時間 | 2,530 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 WA * 15 |
ソースコード
#include<bits/stdc++.h>using namespace std;#define int long long#define rep(i,n) for(int i=0;i<(n);i++)#define pb push_back#define all(v) (v).begin(),(v).end()#define fi first#define se secondtypedef vector<int>vint;typedef pair<int,int>pint;typedef vector<pint>vpint;template<typename A,typename B>inline void chmin(A &a,B b){if(a>b)a=b;}template<typename A,typename B>inline void chmax(A &a,B b){if(a<b)a=b;}vector<int>uku(){vint ret(3);rep(i,3)cin>>ret[i];return ret;}vint cross(vint A,vint B,vint C){rep(i,3){B[i]-=A[i];C[i]-=A[i];}return {B[1]*C[2]-B[2]*C[1],B[2]*C[0]-B[0]*C[2],B[0]*C[1]-B[1]*C[0]};}int dot(vint A,vint B){int ret=0;rep(i,3)ret+=A[i]*B[i];return ret;}signed main(){vint A,B,C,D;A=uku();B=uku();C=uku();D=uku();vint X,Y,Z,W;vint latte;latte.pb(dot(cross(A,B,D),cross(A,B,C)));latte.pb(dot(cross(B,C,D),cross(B,C,A)));latte.pb(dot(cross(C,A,D),cross(C,A,B)));sort(all(latte));if(latte[0]>0||latte[2]<0)cout<<"YES"<<endl;else cout<<"NO"<<endl;return 0;}