Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 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. double t = double((s.size() - 1)*(s.size() - 2)) / 2;
  19. int sum = 0;
  20. for (int i = 0; i < s.size(); ++i) {
  21. sum += s[i] - '0';
  22. }
  23. if (s[s.size()-1] % 5 == 0 || s[s.size() - 1] % 6 == 0) {
  24. p = 1;
  25. }
  26. if (sum % 3 == 0) {
  27. for (int i = 0; i < s.size(); ++i) {
  28. if (((s[i] - '0') % 2) == 0 || (s[i] - '0') % 5 == 0) {
  29. ++a;
  30. }
  31. }
  32. }
  33. else {
  34. for (int i = 0; i < s.size(); ++i) {
  35. if (((s[i] - '0') % 5) == 0) {
  36. ++a;
  37. }
  38. }
  39. }
  40. if (a == 0) {
  41. cout << 0;
  42. return 0;
  43. }
  44. b = s.size() - a;
  45. //cout << a << ' ' << b << endl;
  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. //cout << p << endl;
  53. }
  54. std::cout << std::fixed << std::setprecision(9) << p;
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement