AOJ 0187 - Stoning Fortune
問題文 : Stoning Fortune
解法 :
線分の交差判定・交点判定がきちんとできていれば, 面積を求めて条件に合わせて出力を行う問題.
ライブラリを頼りました.
コード :
#include <cstdio> #include <cmath> #include <algorithm> #include <vector> using namespace std; int main() { Point p[3], q[3], x[3]; double S; while (1){ for (int i = 0; i < 3; i++){ int x1, y1, x2, y2; scanf("%d %d %d %d", &x1, &y1, &x2, &y2); if (i == 0 && x1 == 0 && x2 == 0 && y1 == 0 && y2 == 0) return (0); p[i] = Point(x1, y1); q[i] = Point(x2, y2); } int k = 0; for (int i = 0; i < 3; i++){ for (int j = i + 1; j < 3; j++){ if (!isIntersect(p[i], q[i], p[j], q[j])){ printf("kyo\n"); goto next; } x[k++] = interPointS(p[i], q[i], p[j], q[j]); } } if (x[0] == x[1] || x[1] == x[2] || x[0] == x[2]){ printf("kyo\n"); goto next; } S = area(x[0], x[1], x[2]); if (S >= 1900000) printf("dai-kichi\n"); else if (S >= 1000000) printf("chu-kichi\n"); else if (S >= 100000) printf("kichi\n"); else printf("syo-kichi\n"); next:; } return (0); }