Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. //#include "pch.h"
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <vector>
  5. #include <iomanip>
  6. #include <random>
  7. #include <queue>
  8. #include <string>
  9. #include <map>
  10. #include <unordered_set>
  11. using namespace std;
  12.  
  13. int main() {
  14. double p = 0;
  15. unsigned long long int n, k, a = 0 , b;
  16. cin >> n >> k;
  17. string s = to_string(n);
  18. int sum = 0;
  19. for (int i = 0; i < s.size(); ++i) {
  20. sum += s[i] - '0';
  21. }
  22. if (n % 5 == 0 || n % 6 == 0) {
  23. p = 1;
  24. }
  25. if (sum % 3 == 0) {
  26. for (int i = 0; i < s.size(); ++i) {
  27. if (((s[i] - '0') % 2) == 0 || (s[i] - '0') % 5 == 0) {
  28. ++a;
  29. }
  30. }
  31. }
  32. else {
  33. for (int i = 0; i < s.size(); ++i) {
  34. if (((s[i] - '0') % 5) == 0) {
  35. ++a;
  36. }
  37. }
  38. }
  39. if (a == 0) {
  40. cout << 0;
  41. return 0;
  42. }
  43. b = s.size() - a;
  44. //cout << a << ' ' << b << endl;
  45. double t = double((s.size() - 1)*(s.size() - 2)) / 2;
  46. double q = double(s.size() * (s.size() - 1) )/ 2;
  47. //cout << p << ' ' << q << endl;
  48. for (int i = 0; i < k; ++i) {
  49. //p = (t + (a - 1) * p + (t + a) * (1 - p)) / q;
  50. //p = (t + (a - 1) * p + (t + a) * (1 - p)) / q;
  51. //p = ((t + (a - 1)) * p + (t + a) * (1 - p)) / q;
  52. p = ((t + a - 1) * p + a * (1 - p)) / q;
  53. //cout << p << endl;
  54. }
  55. std::cout << std::fixed << std::setprecision(9) << p;
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement