fork download
  1. #include <stdio.h>
  2. int s(int a[2], int b[2], int c[2]) {
  3. int t = (a[0] - b[0]) * (a[1] - c[1]) - (a[0] - c[0]) * (a[1] - b[1]);
  4. return t < 0 ? -1 : t > 0 ? 1 : 0;
  5. }
  6. bool star(int p[5][2]) {
  7. int t = s(p[0], p[1], p[2]);
  8. return t != 0 &&
  9. s(p[0], p[1], p[4]) == t &&
  10. s(p[0], p[3], p[1]) == t &&
  11. s(p[0], p[3], p[2]) == t &&
  12. s(p[0], p[4], p[2]) == t &&
  13. s(p[1], p[4], p[2]) == t &&
  14. s(p[1], p[4], p[3]) == t;
  15. }
  16. int main() {
  17. int p[][5][2] = {
  18. {{0,0},{1,2},{2,0},{0,1},{2,1}},
  19. {{0,0},{1,2},{2,0},{0,2},{2,2}},
  20. {{0,0},{0,1},{1,2},{2,1},{2,0}},
  21. {{0,0},{5,5},{0,5},{1,0},{1,6}},
  22. {{0,1},{0,0},{1,0},{-1,-2},{-2,-1}},
  23. };
  24. for (int i = 0; i < sizeof p / sizeof p[0]; i++) {
  25. printf(star(p[i]) ? "true\n" : "false\n");
  26. }
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0s 4368KB
stdin
Standard input is empty
stdout
true
false
false
true
false