結果

問題 No.199 星を描こう
ユーザー okadukiokaduki
提出日時 2015-04-29 00:26:40
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 784 bytes
コンパイル時間 454 ms
コンパイル使用メモリ 60,824 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-09 13:46:46
合計ジャッジ時間 1,206 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,816 KB
testcase_01 AC 1 ms
6,940 KB
testcase_02 AC 2 ms
6,944 KB
testcase_03 AC 1 ms
6,940 KB
testcase_04 AC 1 ms
6,944 KB
testcase_05 AC 1 ms
6,940 KB
testcase_06 AC 2 ms
6,940 KB
testcase_07 AC 1 ms
6,940 KB
testcase_08 AC 2 ms
6,940 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 1 ms
6,940 KB
testcase_11 AC 1 ms
6,944 KB
testcase_12 AC 2 ms
6,944 KB
testcase_13 AC 1 ms
6,948 KB
testcase_14 AC 2 ms
6,944 KB
testcase_15 AC 1 ms
6,944 KB
testcase_16 AC 1 ms
6,944 KB
testcase_17 AC 1 ms
6,944 KB
testcase_18 AC 1 ms
6,940 KB
testcase_19 AC 1 ms
6,944 KB
testcase_20 AC 1 ms
6,944 KB
testcase_21 AC 1 ms
6,940 KB
testcase_22 AC 2 ms
6,940 KB
testcase_23 AC 1 ms
6,940 KB
testcase_24 AC 1 ms
6,940 KB
testcase_25 AC 1 ms
6,940 KB
testcase_26 AC 1 ms
6,944 KB
testcase_27 AC 1 ms
6,944 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>

using namespace std;

struct P{
  int x, y;
  P operator-(const P& p){
	P q;
	q.x = x - p.x, q.y = y - p.y;
	return q;
  }
};

int cross(P p1, P p2){
  return p1.x*p2.y - p1.y*p2.x;
}

P ps[5];
int main(){
  for(int i=0;i<5;++i)
	cin >> ps[i].x >> ps[i].y;

  vector<bool> ok(5, true);
  for(int i=0;i<5;++i)
	for(int j=i+1;j<5;++j)
	  for(int k=j+1;k<5;++k){
		for(int h=0;h<5;++h){
		  if(i == h || j == h || k == h) continue;
		  int c1 = cross(ps[j]-ps[i],ps[h]-ps[j]);
		  int c2 = cross(ps[k]-ps[j],ps[h]-ps[k]);
		  int c3 = cross(ps[i]-ps[k],ps[h]-ps[i]);
		  if((c1<=0&&c2<=0&&c3<=0)||(c1>=0&&c2>=0&&c3>=0))
			ok[h] = false;
		}
	  }
  int cnt = 0;
  for(int i=0;i<5;++i) if(ok[i]) ++cnt;
  cout << (cnt == 5? "YES": "NO") << endl;

}
0