Guest User

Untitled

a guest
Jul 21st, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3.  
  4. using namespace std;
  5.  
  6. int selections(int n, int r)
  7. {
  8. if(r == 0) { return 1;}
  9.  
  10. int out = 1.0;
  11.  
  12. for(int i = 0; i < r; i++){ out *= (n-i); out /= (i+1);}
  13.  
  14. return out;
  15. }
  16.  
  17. main()
  18. {
  19. int n; cin >> n;
  20. int angle;
  21. int angle_counts[180]; memset(angle_counts, 0, sizeof(angle_counts));
  22. char inp[1000]; cin >> inp;
  23. char save[1000]; strcpy(save, inp);
  24. char *token = strtok(inp, ",");
  25.  
  26. int m = 0;
  27. while (token != NULL)
  28. {
  29. angle = stoi(token);
  30. if(angle <= -90 || angle > 90)
  31. {
  32. cout << "Invalid Input Angles " << save << '\n';
  33. exit(1);
  34. }
  35.  
  36. angle_counts[angle+89]++;
  37. token = strtok(NULL, ",");
  38. m++;
  39. }
  40.  
  41. if(m != n) { cout << "Invalid Input N " << n << '\n'; exit(1);}
  42.  
  43. int ans = selections(n, 3);
  44. for(int i = 0; i < 180; i++)
  45. {
  46. if(angle_counts[i] > 1) {
  47. ans -= (n-angle_counts[i])*selections(angle_counts[i], 2);
  48. }
  49. if(angle_counts[i] > 2) {
  50. ans -= selections(angle_counts[i], 3);
  51. }
  52. }
  53.  
  54. cout << ans << '\n';
  55. }
Add Comment
Please, Sign In to add comment