#include <stdio.h>
int s(int a[2], int b[2], int c[2]) {
int t = (a[0] - b[0]) * (a[1] - c[1]) - (a[0] - c[0]) * (a[1] - b[1]);
return t < 0 ? -1 : t > 0 ? 1 : 0;
}
bool star(int p[5][2]) {
int t = s(p[0], p[1], p[2]);
return t != 0 &&
s(p[0], p[1], p[4]) == t &&
s(p[0], p[3], p[1]) == t &&
s(p[0], p[3], p[2]) == t &&
s(p[0], p[4], p[2]) == t &&
s(p[1], p[4], p[2]) == t &&
s(p[1], p[4], p[3]) == t;
}
int main() {
int p[][5][2] = {
{{0,0},{1,2},{2,0},{0,1},{2,1}},
{{0,0},{1,2},{2,0},{0,2},{2,2}},
{{0,0},{0,1},{1,2},{2,1},{2,0}},
{{0,0},{5,5},{0,5},{1,0},{1,6}},
{{0,1},{0,0},{1,0},{-1,-2},{-2,-1}},
};
for (int i = 0; i < sizeof p / sizeof p[0]; i++) {
printf(star(p[i]) ? "true\n" : "false\n");
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCBzKGludCBhWzJdLCBpbnQgYlsyXSwgaW50IGNbMl0pIHsKCWludCB0ID0gKGFbMF0gLSBiWzBdKSAqIChhWzFdIC0gY1sxXSkgLSAoYVswXSAtIGNbMF0pICogKGFbMV0gLSBiWzFdKTsKCXJldHVybiB0IDwgMCA/IC0xIDogdCA+IDAgPyAxIDogMDsKfQpib29sIHN0YXIoaW50IHBbNV1bMl0pIHsKCWludCB0ID0gcyhwWzBdLCBwWzFdLCBwWzJdKTsKCXJldHVybiB0ICE9IDAgJiYKCQlzKHBbMF0sIHBbMV0sIHBbNF0pID09IHQgJiYKCQlzKHBbMF0sIHBbM10sIHBbMV0pID09IHQgJiYKCQlzKHBbMF0sIHBbM10sIHBbMl0pID09IHQgJiYKCQlzKHBbMF0sIHBbNF0sIHBbMl0pID09IHQgJiYKCQlzKHBbMV0sIHBbNF0sIHBbMl0pID09IHQgJiYKCQlzKHBbMV0sIHBbNF0sIHBbM10pID09IHQ7Cn0KaW50IG1haW4oKSB7CglpbnQgcFtdWzVdWzJdID0gewoJCXt7MCwwfSx7MSwyfSx7MiwwfSx7MCwxfSx7MiwxfX0sCgkJe3swLDB9LHsxLDJ9LHsyLDB9LHswLDJ9LHsyLDJ9fSwKCQl7ezAsMH0sezAsMX0sezEsMn0sezIsMX0sezIsMH19LAoJCXt7MCwwfSx7NSw1fSx7MCw1fSx7MSwwfSx7MSw2fX0sCgkJe3swLDF9LHswLDB9LHsxLDB9LHstMSwtMn0sey0yLC0xfX0sCgl9OwoJZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplb2YgcCAvIHNpemVvZiBwWzBdOyBpKyspIHsKCQlwcmludGYoc3RhcihwW2ldKSA/ICJ0cnVlXG4iIDogImZhbHNlXG4iKTsKCX0KCXJldHVybiAwOwp9Cg==