Advertisement
Guest User

Untitled

a guest
Apr 30th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. long long gcd(long long firstNumber, long long secondNumber) {
  8. if (firstNumber == 0) {
  9. return secondNumber;
  10. }
  11. else {
  12. return gcd(secondNumber % firstNumber, firstNumber);
  13. }
  14. }
  15.  
  16. void outputProbability(long long maxNumber, long long maxSum) {
  17. long long allVariants = maxNumber * (maxNumber - 1) / 2;
  18. long long goodVariants = 0;
  19. if (maxSum % 2) {
  20. goodVariants += (maxSum - 1) / 2;
  21. --maxSum;
  22. }
  23. long long minMember = 0, maxMember = (maxSum - 1) / 2, amount = maxSum / 2;
  24. goodVariants += (minMember + maxMember) * amount;
  25. if (goodVariants == 0) {
  26. cout << 0 << endl;
  27. }
  28. else if (goodVariants == allVariants) {
  29. cout << 1 << endl;
  30. }
  31. else {
  32. long long greasestDivisor = gcd(goodVariants, allVariants);
  33. cout << goodVariants / greasestDivisor << "/" << allVariants / greasestDivisor << endl;
  34. }
  35. }
  36.  
  37. int main()
  38. {
  39. long long maxNumber, maxSum;
  40. while (cin >> maxNumber >> maxSum) {
  41. if (maxNumber == -1 && maxSum == -1) {
  42. break;
  43. }
  44. else {
  45. outputProbability(maxNumber, maxSum);
  46. }
  47. }
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement