fork download
  1. #include <iostream>
  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 start(int p[5][2]) {
  7. int t = s(p[0], p[1], p[2]);
  8. if (t == 0) return false;
  9. for (int i = 0; i < 5; i++) {
  10. if (s(p[i], p[(i + 3) % 5], p[(i + 1) % 5]) != t) return false;
  11. }
  12. return true;
  13. }
  14. int main() {
  15. int p[][5][2] = {
  16. {{0,0},{1,2},{2,0},{0,1},{2,1}},
  17. {{0,0},{1,2},{2,0},{0,2},{2,2}},
  18. {{0,0},{0,1},{1,2},{2,1},{2,0}},
  19. {{0,0},{5,5},{0,5},{1,0},{1,6}},
  20. };
  21. for (int i = 0; i < sizeof p / sizeof p[0]; i++) {
  22. std::cout << (start(p[i]) ? "true" : "false") << std::endl;
  23. }
  24. return 0;
  25. }
  26.  
Success #stdin #stdout 0s 4200KB
stdin
Standard input is empty
stdout
true
false
false
true